如何将变量dch
设置为返回的成功ajax数据?
var aid='11111111V';
var dch = 0;
$.ajax({
type:"POST",
url:"new_hpa_fun_aplcval.php",
data:"aid="+aid,
success: function(msg) {
if (msg =='OK'){
dch=1;
} else {
dch=2;
}
}
});
if (dch==1){
//same php code
}else if (dch==2){
//another php code
}
答案 0 :(得分:1)
也许你不熟悉异步操作。在您的代码中,代码底部的if-else
检查实际上是在您的success
回调之前执行。
您可能观察到的是dch
总是0
。您需要在回调中继续执行代码:
var aid='11111111V';
var dch = 0;
$.ajax({
type:"POST",
url:"new_hpa_fun_aplcval.php",
data:"aid="+aid,
success: function(msg) {
if (msg =='OK'){
// perform something here
} else {
// perform something here
}
}
});
在这种情况下,您甚至不需要dch
变量。
您的另一个选择是通过将async: false
添加到$.ajax
方法中的选项,使AJAX调用同步。这将导致代码在继续执行之前阻塞并等待响应。
请参阅Wiki on Ajax以获取有关jQuery内幕发生情况的更多技术说明。
答案 1 :(得分:-1)
您可以尝试这样
1)在函数中包装ajax并返回值
2)What does "async: false" do in jQuery.ajax()?
function call() {
var temp = 0;
$.ajax({
type:"POST",
url:"new_hpa_fun_aplcval.php",
async: false, // Add this
data:"aid="+aid,
success: function(msg) {
if (msg =='OK'){
temp = 1;
} else {
temp = 2;
}
}
});
return temp;
}
var dch = call();