バックグラウンド
更新中のアプリケーションがあります。他のページでは、リンクを使用して php スクリプトを実行しheader("Content-type: application/vnd.ms-word");
、ドキュメントを MS Word に出力するために a を返します。通常、これらのリンクはコンテンツをその場で動的に生成します。私の現在の実装シナリオでは、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スクリプトで2つのヘッダータイプを動的に組み合わせる方法を誰かが教えてくれますか?
コードの実装
<?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
ます。