Codeigniter - 如何使用 javascript 变量重定向到控制器?($this->load->view() 不工作)
Codeigniter - How to redirect to a controller with javascript variable?($this->load->view() not working)
我正在尝试使用 TCPDF 将当前 html 页面转换为 pdf。我使用 Ajax 将 html 代码传递给 CreatePDF 控制器,但不确定为什么 "pdfreport" 视图无法打开。
在我的控制器 CreatePDF 中:
public function pdf() {
$this->load->helper('pdf_helper'); //tcpdf helper file
$HTMLInfo = $this->input->post('HTMLInfo'); //get html code from view
$data['HTMLInfo'] = $HTMLInfo;
$this->load->view('pdfreport', $data);
}
在视图中我有一个 "PDF" 按钮,单击时:
$('#pdf').click(function(){
$.ajax({//ajax call
type: 'post',
url: '<?php echo base_url('CreatePDF/pdf'); ?>',
data: {'HTMLInfo': document.getElementById('repTable').outerHTML},
success: function (data) {
}
});
});
如果我用html代码替换$data['HTMLInfo'],直接调用CreatePDF,加载pdf页面是没有问题的。
如果我使用:
$HTMLInfo = 'TEST';
<input type="button" onClick="location.href = '<?php echo site_url("CreatePDF/pdf/{$HTMLInfo}"); ?>'" value="HTMLInfo" />
把"TEST"打印成pdf也没有问题,但是如何用"document.getElementById('repTable').outerHTML"代替"TEST"呢?
谁能帮我解决这个问题?
如果您尝试加载视图无效,则需要在控制器函数中重定向,因为 ajax 是后台任务。
例子
public function pdf() {
$this->load->helper('pdf_helper');
$HTMLInfo = $this->input->post('HTMLInfo');
if($HTMLInfo != "") {
$urisegment = base64_encode($HTMLInfo);
redirect("controller_name/function_name/'".$urisegment."'");
}
}
public function get_html($html){
$data = base64_decode($html);
$this->load->view('pdfreport', $data);
}
我正在尝试使用 TCPDF 将当前 html 页面转换为 pdf。我使用 Ajax 将 html 代码传递给 CreatePDF 控制器,但不确定为什么 "pdfreport" 视图无法打开。
在我的控制器 CreatePDF 中:
public function pdf() {
$this->load->helper('pdf_helper'); //tcpdf helper file
$HTMLInfo = $this->input->post('HTMLInfo'); //get html code from view
$data['HTMLInfo'] = $HTMLInfo;
$this->load->view('pdfreport', $data);
}
在视图中我有一个 "PDF" 按钮,单击时:
$('#pdf').click(function(){
$.ajax({//ajax call
type: 'post',
url: '<?php echo base_url('CreatePDF/pdf'); ?>',
data: {'HTMLInfo': document.getElementById('repTable').outerHTML},
success: function (data) {
}
});
});
如果我用html代码替换$data['HTMLInfo'],直接调用CreatePDF,加载pdf页面是没有问题的。
如果我使用:
$HTMLInfo = 'TEST';
<input type="button" onClick="location.href = '<?php echo site_url("CreatePDF/pdf/{$HTMLInfo}"); ?>'" value="HTMLInfo" />
把"TEST"打印成pdf也没有问题,但是如何用"document.getElementById('repTable').outerHTML"代替"TEST"呢?
谁能帮我解决这个问题?
如果您尝试加载视图无效,则需要在控制器函数中重定向,因为 ajax 是后台任务。
例子
public function pdf() {
$this->load->helper('pdf_helper');
$HTMLInfo = $this->input->post('HTMLInfo');
if($HTMLInfo != "") {
$urisegment = base64_encode($HTMLInfo);
redirect("controller_name/function_name/'".$urisegment."'");
}
}
public function get_html($html){
$data = base64_decode($html);
$this->load->view('pdfreport', $data);
}