【问题标题】:fpdf works properly if i call the controller and doesnt work if i call it through jquery如果我调用控制器,fpdf 可以正常工作,如果我通过 jquery 调用它,fpdf 就不能正常工作
【发布时间】:2012-06-21 11:42:38
【问题描述】:

我能够使用 fpdf 获得 pdf 的输出,问题是如果通过 jquery 调用函数我不会生成它...而是 pdf 显示在 firebug 中?如何解决这个问题

firebug 中的输出显示

%PDF-1.3
3 0 obj
<</Type /Page
/Parent 1 0 R
/Resources 2 0 R
/Contents 4 0 R>>
endobj
4 0 obj
<</Filter /FlateDecode /Length 582>>
stream
x���Ms�0���{LU���͞&�v�L�p��b��N��`Zc���k,ij��Bgh��b���{�|�����șP`�f�B���sS��C���*+�[H��K�ŁO��מ�����M:<�3�jt�:Z��1,�`�ˤc
�Ҁ��        ��0���~��^��U�  �;�q�_6y
y�� ��+Q�6��e/���C%�ً+�!q5+�Sf

jquery:

        $.post(url+"/create_pdf",js,function(data){

        },"json");

【问题讨论】:

  • 您不能使用 ajax 让浏览器显示“下载”文件对话框。但是有a workaround using a hidden <iframe>。也许这可以解决您的问题。
  • 你能告诉我正确的改变我必须做什么吗?

标签: php pdf-generation fpdf


【解决方案1】:

$.post() 的插入(它将运行 PDF 生成器并将内容返回到 AJAX),您应该将用户重定向到浏览器中的 url:即使用

window.location.href=url+"registration/create_member?" + $.param(js);

您需要将 PDF 生成函数转换为接受 $_GET,而不是 $_POST

或者,按照您的方式生成 pdf 文件,但存储在服务器上(临时)并通过 ajax 将 url 传回,然后 ajax 通过 windows.location.href 将用户重定向到该临时文件位置。

【讨论】:

  • 但是不是取json的值吗?而是显示空白,除了标签
  • 您是否将 php 设置为接受获取变量而不是发布? $this->input->get
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-07-25
  • 1970-01-01
  • 2014-11-13
  • 2017-11-30
  • 1970-01-01
  • 1970-01-01
  • 2021-02-01
相关资源
最近更新 更多