php在ajax完成之前运行
php run before ajax is completed
我知道PHP首先运行,但有没有办法让PHP等待ajax请求,然后运行它的脚本?我这里有一个php脚本,我想运行它,但我需要JS文件中的一个变量才能成功运行。所以我想知道这是否可能?
我在JS中有一个正常的请求:
var myvar = data;
$.get('phpscript.php', {myvar: myvar} );
在PHP中:
$myphp = $_GET['myvar'];
但如果我回显$myphp
,它会返回"未定义",如果我提醒它,它会显示值;这意味着php脚本在收到ajax请求之前就已经运行了。有什么办法可以让PHP等待吗?
谢谢。
将需要变量的PHP放在自己的脚本中,并从ajax调用中调用它,一旦ajax调用得到响应,则根据需要更新DOM。
PHP运行在服务器上,然后javascript运行在客户端上进行ajax调用,然后PHP运行在返回数据的服务器上,随后javascript获取数据并对其进行处理。
$.get('phpscript.php', {myvar: myvar}, function(data) {
$('.result').html(data);
});
php文件中有这样的内容:
$myphp = $_GET['myvar'];
echo $myphp;
简单的答案是,不,你不能让PHP等待。PHP只在服务器端运行,在发送AJAX请求时,根据定义,页面已经发送到客户端。
您可能需要进行一些重构。如果该变量绝对需要用于PHP函数,那么您可能需要将该逻辑移动到"phpscript.PHP"中,或者(不太理想)当您从第一个函数获得响应时,您可能需要发出另一个AJAX请求。
但我的猜测是,更常见的情况是,您可能只需要弄清楚如何用javascript做您想要的事情。如果您想要的只是一个相当于PHP echo的东西,那么您需要使用Javascript(或JQuery)DOM操作。
编辑:我忘了提一下,另一种选择是在发送页面之前,简单地在服务器端完成所有PHP内容,而不是AJAX,你想用PHP做一些事情,比如包括其他PHP脚本和从中调用方法。但是,你在服务器端做的一切,用户都坐在那里看着一个空白屏幕,等待页面加载。因此,对于任何不太快的事情,这都不是一个选择。
- 运行AJAX脚本
- 在弹出函数中运行AJAX
- Javascript.在当前AJAX停止后运行AJAX流
- 运行 AJAX 需要什么 - 将 jQuery 添加到页面处理 AJAX 调用
- 如何先追加,然后在jquery中运行ajax
- 在document.ready jquery上运行ajax请求
- 运行 ajax 函数以每 3 秒检查一次 json 响应
- 运行 AJAX 函数的多个实例 - 仅第二个实例更新
- 使用 JQuery 运行 AJAX 和使用普通 XMLHttpRequest 运行 AJAX 有什么区别?
- 一个接一个地运行 ajax
- 如何排序这个jQuery tha运行ajax然后必须返回true
- 运行 AJAX 异步时文档类型标记的“意外输入结束”,但在同步时则不然
- 在页面加载时运行ajax,然后每5秒运行一次
- 阻止对运行AJAX的超链接执行默认操作
- 在运行ajax请求时,无法将内部html设置为null
- 运行AJAX调用的javascript代码
- 在因检测Adblocker(Ghostery)而被阻止的URL上运行Ajax请求
- 当鼠标(或手指)不再拖动时,我怎么能只在更改时运行AJAX调用呢
- 在运行AJAX调用之后,不会执行jquery代码
- 在点击事件上运行AJAX调用——使用React.js