0

バックグラウンド

更新中のアプリケーションがあります。他のページでは、リンクを使用して 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ます。

4

0 に答える 0