成功时设置变量值

时间:2013-10-12 14:41:07

标签: javascript ajax

如何将变量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
}

2 个答案:

答案 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();