从AJAX打印页面

问题描述 投票:4回答:2

我写了一个简单的生成器来创建优惠。它运作良好,但我遇到了打印问题。当我从AJAX请求尝试打印页面时,我从AJAX请求获取索引页面而不是数据。

怎么了?

此外,来自AJAX的数据是正确的。

$.post({
    type: "POST",
    url: "generate.php",
    data: {pid: pid, net: net, brutto: brutto, contractor: contractor, delivery: delivery, term: term},
}).done(function(data) {
    window.print(data);
});

PHP文件示例:

<?php
$foo = "foo";
ob_start();
?>

<p><?php echo $foo; ?></p>

<?php 

$result = ob_get_flush();
echo $result;

?>
javascript php ajax
2个回答
5
投票

print()方法不带任何参数。因此,如果要从变量打印数据,可以使用此方法:

$.post({
    type: "POST",
    url: "generate.php",
    data: {pid: pid, net: net, brutto: brutto, contractor: contractor, delivery: delivery, term: term},
}).done(function(data) {
    printWindow = window.open('');
    printWindow.document.write(data);
    printWindow.print();
});

这将打开一个新选项卡,屏幕上的值为data并准备打印。


3
投票

print() method

打开“打印”对话框以打印当前文档。

它不带任何参数(因此任何传递它的参数都将被忽略)。

如果要打印变量中的数据,则需要将其放在用户正在查看的文档中。

© www.soinside.com 2019 - 2024. All rights reserved.