0

PHP が最初に実行されることはわかっていますが、PHP に ajax リクエストを待機させてからスクリプトを実行させる方法はありますか? ここに実行したいphpスクリプトがありますが、正常に実行するにはJSファイルから変数が必要です。それで、それが可能かどうか疑問に思っていましたか?

私が持っているのは、私のJSの通常のリクエストです:

var myvar = data; 
$.get('phpscript.php', {myvar: myvar} ); 

そしてPHPで:

$myphp = $_GET['myvar']; 

しかし、エコー$myphpすると「未定義」が返されますが、警告すると値が表示されます。これは、php スクリプトが ajax からのリクエストを受け取る前に実行されていることを意味します。PHPを待たせる方法はありますか?

ありがとう。

4

3 に答える 3

2

変数を必要とする PHP を独自のスクリプトに入れ、ajax 呼び出しから呼び出します。ajax 呼び出しが応答を取得したら、必要に応じて DOM を更新します。

PHP がサーバー上で実行され、次にクライアント上で javascript が実行されて ajax 呼び出しが行われ、サーバー上で PHP が実行されてデータが返されます。次に、JavaScript がデータを取得して何かを実行します。

于 2013-08-02T19:10:02.027 に答える
0

簡単に言えば、いいえ、PHP を待たせることはできません。PHP はサーバー側でのみ実行され、AJAX 要求が送信されるまでには、定義上、ページは既にクライアントに送信されています。

おそらく、いくつかのリファクタリングを行う必要があります。変数を PHP 関数で絶対に使用する必要がある場合は、そのロジックを「phpscript.php」に移動する必要があるか、(最適ではありませんが) 最初の応答を取得したときに別の AJAX 要求を発行する必要がある場合があります。

しかし、より一般的には、JavaScript を使ってやりたいことを行う方法を理解する必要があるだけだと思います。PHP のエコーに相当するものだけが必要な場合は、そのために Javascript (または JQuery) DOM 操作を使用することをお勧めします。

編集:言及するのを忘れていました.他のオプションは、ページを送信する前にサーバー側ですべてのPHPを実行することです.AJAXの代わりに、他のphpスクリプトを含めるなど、PHPで何かをしたいでしょう.そこからメソッドを呼び出します。しかし、サーバー側で行うことはすべて、ユーザーはそこに座って空白の画面を見て、ページが読み込まれるのを待っています。したがって、これは非常に高速でないものにはオプションではありません。

于 2013-08-02T19:14:10.763 に答える
0
$.get('phpscript.php', {myvar: myvar}, function(data) {
  $('.result').html(data);
});

php ファイル内には次のようなものがあります。

$myphp = $_GET['myvar']; 

echo $myphp;
于 2013-08-02T19:10:52.313 に答える