在将数据提交到数据库之后,在按钮点击时使用DOMPDF生成PDF并使用codeigniter

时间:2013-07-15 19:39:12

标签: php javascript codeigniter dompdf

我有一个关于使用DOMPDF创建PDF的问题。基本上我有一个表单,使用jquery提交数据到DB,如下所示

$('#submit').click(function(){
var submit = $.ajax({
    url: 'setController.php',
    type: 'POST',
    data: dataString,
    success: function(msg){
        alert("sent");

        },
        error: function(msg){
    alert("fail");
        }
    });
});

setController调用我的setModel,它在将数据提交到数据库之后返回我的html渲染。看起来像这样。

$html = $this -> setModel  -> setData($arr1,$arr2);

这将返回一个简单的html表。

然后我把它推到dompdf如下

    $this->load->helper(array('dompdf', 'file'));
    pdf_create($html, 'report');

我的问题是当点击ID #submit的按钮时,不会返回pdf作为下载。但是,如果我要直接导航到我的网址

  

http://www.url/setData

我的回复是pdf下载,但没有数据。

点击“提交”按钮后,是否可以下载导致pdf的任何人?

谢谢。

1 个答案:

答案 0 :(得分:2)

用户是否需要提交表单以提交表单,然后会显示PDF的下载对话框?通过使用AJAX来管理流程,您将无法下载PDF,因为AJAX流程会调用并接收响应。这一切都在当前页面的上下文中。

可以捕获响应然后打开一个新窗口并用PDF填充它。但除非你有真正的需要,否则我会反对它。不要让过程变得比它需要的更难。最简单的方法是发出正常的POST请求而不是AJAX POST请求。通常,用户不会离开当前页面,因为下载过程将取消页面导航。

如果您打算使用AJAX执行此操作,则有lots of related questions