在JQuery之后调用PHP文件

我正在使用DOMPDF,我希望我的表单输入文本以PDF格式提供。 所以当我在输入字段中键入内容时,我按下导出为PDF,我希望它在那里。 所以这就是我计划我的解决方案的方式。 当我用HTML从POST调用PHP时出现问题,因为它不更新输入值。 它只是发送空白的。 我需要更改它以便更新它们。</ p>

1)用文本填写输入字段
2)单击导出为PDF
3)使用JQuery更改带输入值的HTML n4)调用PHP文件( $ dompdf-&gt; loadHtml(file_get_contents('index.php'));
</ code> </ p>

我尝试使用AJAX进行此操作 但它不起作用。我不需要将任何数据发送到PHP文件。我只需要在JQuery更改HTML之后调用。</ p>

这是我的PHP文件: </ p>

 &lt;?php 
require_once'autoload.inc.php';
//引用Dompdf命名空间
use Dompdf \ Dompdf;

//实例化和 使用dompdf类
$ dompdf = new Dompdf();
$ dompdf-&gt; loadHtml(file_get_contents('index.php'));
//(可选)设置纸张大小和方向
$ dompdf - &gt; setPaper('A4','landscape');

//将HTML呈现为PDF
$ dompdf-&gt; render('doc.pdf');

//输出生成的 PDF到浏览器
$ dompdf-&gt; stream();

?&gt;
</ code> </ pre>

我的JQUERY文件</ p>

  function ajax(){
alert('in');
$ .ajax({
url:'jobsheet.php',
type:'POST',
data:formData,
success:function(response){
alert (响应);
}
});
}
</ code> </ pre>

如果您有任何其他解决方案,请告诉我们!</ p>

</ div>

展开原文

原文

I am using DOMPDF and I want my form input text to be available in PDF format. So when I type something in input fields, and I press export to PDF, I want it to be there. So here is how I planned my solution. The problem appears when I call the PHP with POST from HTML because It does not update the input values. It just sends the blank ones. I need to change that so it updates them.

1) Fill in the input fields with text 2) Click Export to PDF 3) Use JQuery to change the HTML with input values 4) Call the PHP file ($dompdf->loadHtml(file_get_contents('index.php'));

I tried using AJAX for this but it doesn't work. I DON'T need to send ANY data to the PHP File. I just need to call if after the JQuery changed the HTML.

Here's my PHP File:

<?php
require_once 'autoload.inc.php';
// reference the Dompdf namespace
use Dompdf\Dompdf;

// instantiate and use the dompdf class
$dompdf = new Dompdf();
$dompdf->loadHtml(file_get_contents('index.php'));
// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');

// Render the HTML as PDF
$dompdf->render('doc.pdf');

// Output the generated PDF to Browser
$dompdf->stream();

?>

And my JQUERY File

function ajax() {
    alert('in');
$.ajax({
    url: 'jobsheet.php',
    type: 'POST',
    data: formData,
    success:function(response){
        alert(response);
    }
});
}

If you have any other solution for this, please let me know!

duanmou9228
duanmou9228 我不明白你期望Dompdf如何显示你的内容,但也不发送任何数据?您可能需要澄清这一点。您是说要渲染浏览器修改的HTML文档?
3 年多之前 回复
dongtaogu8510
dongtaogu8510 如果您想要在PDF生成的输出中更改某些内容,则需要发送内容,否则它将仅使用以前提供的信息。如果没有ajax调用或表单提交,您无法从客户端提交到服务器,至少我从未意识到这样做的方法。
接近 4 年之前 回复

1个回答



我发现你的技术存在两个问题。</ p>

首先,Dompdf(截至0.6.1) )不解析PHP所以你需要在将它传递给dompdf之前预先解析它。 你可以使用输出缓冲:</ p>

 &lt;?php 
ob_start();
require_once'index.php';
$ html = ob_get_clean();
ob_end_clean ();

require_once'autoload.inc.php';
use Dompdf \ Dompdf;
$ dompdf = new Dompdf();
$ dompdf-&gt; loadHtml($ html);
$ dompdf-&gt ; setPaper('A4','landscape');
$ dompdf-&gt; render();
$ dompdf-&gt; stream();
?&gt;
</ code> </ pre> \ n

其次,如果您只想显示结果,为什么要使用AJAX呢? 当您只需使用表单帖子时,以这种方式获取和显示PDF文档需要更多的工作。 如果您特别需要使用AJAX,则应指定。</ p>
</ div>

展开原文

原文

I see two problems with your technique.

First, Dompdf (as of 0.6.1) does not parse PHP so you will need to pre-parse that before passing it off to dompdf. You can use output buffering for that:

<?php
ob_start();
require_once 'index.php';
$html = ob_get_clean();
ob_end_clean();

require_once 'autoload.inc.php';
use Dompdf\Dompdf;
$dompdf = new Dompdf();
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$dompdf->stream();
?>

Second, if all you want to do is display the results why use AJAX at all? It requires significantly more work to fetch and display the PDF document this way when you could simply use a form post. If you have a particular need for using AJAX you should specify.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐