gpt4 book ai didi

javascript - Codeigniter - 如何使用 javascript 变量重定向到 Controller ?($this->load->view() 不工作)

转载 作者:行者123 更新时间:2023-11-29 16:03:13 25 4
gpt4 key购买 nike

我正在尝试使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com