2013-12-13 144 views
-1

嘿我有这样的jQuery的使用Ajax结合:保存在变量jQuery的

var username = $("#username").val(); 
if(username){ 
    $.ajax({ 
     url: 'check.php', 
     data: {data: JSON.stringify(username)}, 
     type: 'POST', 
     dataType: "json", 
     success: function (data) { 
      if(data.result == 1) { 
       var name = "content"; // SAFE anything in global variable? 
      } 
     } 
    }); 
} else { 
    alertify.error("You forgot to type your username"); 
}  


if(name) {  
    // if global variable is set => do something 
} else {   
    // if not => do something else 
} 

我想检查data.result = 1,这就是我能想象,如果数据找到的唯一出路。结果返回值为1

编辑:

我不想通过警报检查它,因为我需要在后面用这个全局变量的工作,任何人都可以帮助我与我的问题?问候

编辑:

​​
+0

首先,'var'你定义了一个局部变量;使用全局变量,或者更好地调整某个闭包变量的属性。其次,AJAX是_asynchoronous_;不要认为AJAX调用之后的代码将在执行后执行 - 它不会执行。 – raina77ow

回答

1

阿贾克斯()调用之前声明一个变量,并给它分配你的成功处理程序中:

var result; 
var username = $("#username").val(); 
if(username){ 
    $.ajax({ 
     url: 'check.php', 
     data: {data: JSON.stringify(username)}, 
     type: 'POST', 
     dataType: "json", 
     success: function (data) { 
      result = data.result; 
     } 
    }); 
} else { 
    alertify.error("You forgot to type your username"); 
} 
+0

我更新了我的代码,看看,返回的结果是:1,但我仍然“不好”,为什么你能解释我? – user3094856

+0

@ user3094856正如有人在这个问题下评论的那样,“其次,AJAX是异步的;不要以为AJAX调用后的代码会在完成后执行 - 它不会。” – pvgoran

+0

也就是说,“ok”/“not ok”检查后,“result”会在稍后的时间分配。 – pvgoran