我有一个我不明白的问题。 correctLogin是一个控制正确/不正确登录的布尔值。初始值为false,recoverUser返回一个值。如果此值不为空,则correctLogin为真。
但是,correctLogin不会改变。这总是错误的。
注释警告如果正确则显示为true,但在recordLogin中,correctLogin再次为false。
我的代码:
$(document).ready(function(){
$("#loginButton").click(function(){
var correctLogin = false;
$.ajax({
type: "POST",
url: "recoverUser.php",
data: "nameUser="+$("#nameUser").val()+"&passwordUser="+$("#passwordUser").val(),
success: function(groupUser){
if(groupUser=="") {
$("#add_err").html("Incorrect Data");
} else {
$("#add_err").html("Correct Data...")
sessionStorage.setItem('sesionGrupo',groupUser);
sessionStorage.setItem('sessionUser',$("#nameUser").val());
sessionStorage.setItem('sessionPassword',$("#passwordUser").val());
correcLogin = true;
// alert(correctLogin);
}
},
});
$.ajax({
type: "POST",
url: "recordLogin.php",
data: "nameUser="+$("#nameUser").val()+"&statusLogin="+correctLogin,
success: function(){
},
});
});
答案 0 :(得分:2)
由于ajax是异步的,因此不会等待成功事件发生。因此,当您进行下一个请求时,该变量的值将是默认值。
更改代码,将第二个ajax调用移动到第一个成功事件。
$("#loginButton").click(function() {
var correctLogin = false;
$.ajax({
type: "POST",
url: "recoverUser.php",
data: "nameUser=" + $("#nameUser").val() + "&passwordUser=" + $("#passwordUser").val(),
success: function(groupUser) {
if (groupUser == "") {
$("#add_err").html("Incorrect Data");
} else {
$("#add_err").html("Correct Data...")
sessionStorage.setItem('sesionGrupo', groupUser);
sessionStorage.setItem('sessionUser', $("#nameUser").val());
sessionStorage.setItem('sessionPassword', $("#passwordUser").val());
correcLogin = true;
// alert(correctLogin);
}
$.ajax({
type: "POST",
url: "recordLogin.php",
data: "nameUser=" + $("#nameUser").val() + "&statusLogin=" + correctLogin,
success: function() {},
});
},
});
});
答案 1 :(得分:1)
有效!谢谢!这是一个有用的信息。链接jquery ajax在未来的功能中帮助我。