背景
我有一个正在更新的应用程序。在其他页面上,我使用链接运行 php 脚本并返回 aheader("Content-type: application/vnd.ms-word");
以将文档打印到 MS Word。通常,这些链接动态地生成内容。在我当前的实现场景中,我尝试使用 jQuery 函数来显示内容,然后让文档使用 JSON 将信息返回到当前页面。我试图实现的一般过程是1) user clicks link, 2) generate the letter and then 3) return a message to the original page with something similar to 'success'
. 我的 AJAX/JSON 函数可以正常工作,但是我收到了一个PHP Warning: Cannot modify header information - headers already sent by (output...
并且我的链接不起作用。有人可以帮助指导我如何在 PHP 脚本中动态组合两种标头类型吗?
代码实现
<?php
$query_letters = "....";
try {
$letters = $customer->runQuery($query_letters);
header("Content-type: application/vnd.ms-word");
foreach($letters as $letter) {
$filename = "Letter_". $letter['id'].".doc";
header("Content-Disposition: attachment;Filename=" . $filename);
echo $letters[0]['letter'];}
} catch (Exception $e) {echo "Error: " . $e->getMessage();}
$message=array('message' => "Congratulations!",'link' => $type);
header('Content-Type: application/json');
print json_encode($message);
?>
编辑
我在考虑可能使用 javascript 调用 iframe 来运行 php 代码,理论上这也会得到最终结果。需要指出的是,为了实现我的目标,我不一定需要使用 ajax 来运行我的 php 脚本。我只需要create a link which prints a ms-word document on the fly
。