2012-01-21 165 views
-1
$check = ""; 

    $.ajax({ 
     url: "check.php", 
     type: "POST", 
     cache: false, 
     data: $name + "=" + $value, 
     success: function(data){ 
      $check = data; 
      alert($check); 
     } 
    }); 

    alert($check); 

第味精是“你好”全局变量不改变

第二味精“”为什么呢?

+1

当您提醒您的$chek局部值的你POST请求返回单词Hello说“第一”和“第二”是你在谈论时间序列还是代码行序列?它有很大的不同。在上面的代码中,按照时间顺序,第一条消息应该是空的,后面的一条应该是在你的ajax调用返回时,第二条消息应该是“Hello”。 –

+0

此代码执行一次。 – faressoft

+0

代码行序列 – faressoft

回答

6

$.ajax是一个异步函数,它会立即返回并在收到成功响应时调用success回调。

因此,当您的代码底部的alert($check)被执行时,$check的值还没有被ajax的回调修改。这就是为什么你看到空字符串。

1

jquery ajax功能默认是异步的。所以执行剂量等待函数值返回。所以mayb因为你在本地开发服务器上工作。和AJAX POST请求是快,你在响应所以第一个警告消息是“你好”
,然后继续执行,并再次返回