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

标签 javascript ajax codeigniter tcpdf

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

相关文章:

ruby-on-rails - rails : remote form with conditional

ajax - p :ajax update of ID that doesn't exists

php - 调整图像大小以完全适合尺寸(Codeigniter)

javascript - 将对象数据添加到 html 表单字段

javascript - 如果表情符号是国旗,则使用正则表达式进行检测

JQuery 显示属性不起作用 - prestashop

CodeIgniter 的 IPN 库 - 脚本忽略了我的代码

php number_format 显示小数

javascript - 使用 Appium 和 Desired 功能,我在设备中启动 android 应用程序,但无法导航到不在屏幕 View 中的元素

javascript - Sequelize js 'include' 和 'raw'