我正在尝试使用 TCPDF 将当前的 html 页面转换为 pdf。我使用 Ajax 将 html 代码传递给 CreatePDF Controller ,但不确定为什么无法打开“pdfreport” View 。
在我的 Controller 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);
}
在 View 中我有一个“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" />
打印出pdf的“TEST”也没有问题,但是如何用“document.getElementById('repTable').outerHTML”代替“TEST”呢?
谁能帮我解决这个问题?
最佳答案
如果您尝试加载 View 不起作用,则需要在您的 Controller 函数中重定向,因为 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);
}
关于javascript - Codeigniter - 如何使用 javascript 变量重定向到 Controller ?($this->load->view() 不工作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37449738/