2011-07-19 7 views
2

私はPHPの破りについて質問しました。 javascriptが(phpによって生成されている)コードを実行している間、私はPHPプロセススレッドの実行を停止する必要があります。js変数を取得するためのPHPプロセスを中断する

例:

<?php 

print get("prompt('put your name here');"); 

// this will generate $.ajax(... data: { 'return':prompt('put your name') } ...) 


?> 

PHPの関数 ''' 取得のJavaScriptコード(リターンヘッダとコンテンツ)を印刷する必要がありますが、PHPの実行を停止しません。彼はブラウザから機能の結果を見なければならない。 (ajax returnを介して)。

私はどのようにしてPHP出力をTEMPORARY出力で終了し、PHPコードの完了後にクエリ結果を返すことができます。 ...この問題の解決方法を教えてください。

(私は同期プロンプトダイアログ結果を取得する必要があります)

ありがとう!

+1

これはPHPの仕組みではありません。 PHPはテキスト出力言語です。それはブラウザが送信するコードの実行を認識していません。 JavaScriptコールが完了するのを待つことはできません。 –

+0

これは別の方法が必要です=) – xercool

+0

これはちょっとしたことですが、ユーザーの名前をキャプチャしてDOM(つまりHTML)に挿入してページを印刷するだけで、 JavaScriptを使用して残りの部分を処理します。 (それはそれのためのものです。) –

答えて

5

これは動作する方法ではありません.JavaScriptの出力とAjax経由の応答をPHP内の2つの別々のリクエストとして処理する必要があります。

すなわち:次のように一般的なスキームがある:

  1. PHPは、このPHPスクリプトの実行はこの時点で終了するなど、JavaScriptを含む関連したHTMLを出力します。

  2. クライアント側のJavaScriptが必要な処理を実行し、サーバー上のPHPスクリプトへのAJAX呼び出しを行います。これは、同じPHPスクリプト($_GETまたは$_POST変数を使用して、提供されたページの「モード」に切り替えることができます)、または別のPHPページにすることができます。しかし、PHPの観点から見ると、これはまったく別のスクリプト呼び出しであることを認識することが重要です。

覚えておくべき重要なことは、HTTPは本質的にステートレスであるということですので、あなたは、あなたがPHPスクリプトはAJAX要求で必要となる関連情報のすべてを渡すことを確認する必要があります。

さらに、JavaScriptが無効になっているユーザーのためのフォールバックシステムがあることを理想的には確認する必要があります。

+0

それは非常にintresting .. – xercool

+0

しかし、私はロックプリントが必要とパスを取得する(最初に)。 2番目には印刷を実行します(どのように自動化するのですか?) – xercool

+0

でも問題はありません。 'fwrite'操作を始めると...書き込みは2回実行されます! 'if..else'文(GETまたはPOSTによる)を作るなら、私はすべての状況を宣言する必要があります。しかし、私は実行の必要性のコードで1つの関数を作る必要がある...私は取得する必要があります((...を取得))) - ネストされたバリアントも...私は問題がどのような方法...ハードが、最適だと思う – xercool

関連する問題