抱歉,如果我的标题不清楚,但我不确定如何形成问题/问题。 所以,我有这个代码:
HTML:
<button onclick="test()">test</button><br>
的javascript:
function test(){
var text="Old text";
$.post('test.php',function(data){
text=data;
});
alert(text);
}
PHP:
<?php
echo "New text";
?>
但在警告框中我收到“旧文字”。 我该如何解决这个问题?
答案 0 :(得分:3)
在回调函数内移动警报。在其他地方,当$ .post正在运行时执行警报。
function test(){
var text="Old text";
$.post('test.php',function(data){
text=data;
alert(text);
});
}
更新:如果警报后有更多代码要执行,您可以将这些操作包装在新函数中:
function test(){
var text="Old text";
$.post('test.php',function(data){
text=data;
moreActions(text);
});
}
function moreActions(text){
alert(text);
// and more actions to work with TEXT here
}
答案 1 :(得分:-2)
$ .post()是一个异步函数,因此在从post()请求获取数据之前,alert()正在执行。尝试使用jquery.deferred()同步工作