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
$.get('phpscript.php', {myvar: myvar}, function(data) {
  $('.result').html(data);
});

在 php 文件中有类似的内容:

$myphp = $_GET['myvar']; 

echo $myphp;
于 2013-08-02T19:10:52.313 回答
0

简短的回答是,不,你不能让 PHP 等待。PHP 仅在服务器端运行,在发送 AJAX 请求时,根据定义,页面已经发送到客户端。

您可能需要进行一些重构。如果变量绝对需要用于 PHP 函数,那么您可能需要将该逻辑移动到“phpscript.php”中,或者(不太理想)您可能需要在收到第一个响应时发出另一个 AJAX 请求。

但我的猜测是,更常见的是,你可能只需要弄清楚如何使用 javascript 做你想做的事。如果您想要的只是与 PHP 回显等效的东西,那么您将需要为此使用 Javascript(或 JQuery)DOM 操作。

编辑:我忘了提,另一个选择是在发送页面之前在服务器端完成所有 PHP 的工作,而不是 AJAX,你想在 PHP 中做一些事情,比如包括你的其他 php 脚本和从中调用方法。但是,您在服务器端所做的一切,用户都坐在那里看着一个空白屏幕等待页面加载。所以这不是任何不是很快的选择。

于 2013-08-02T19:14:10.763 回答