echo "joined";
如果出现错误就回复其他消息,当提交所有内容时我希望用户被重定向到另一个页面但是当我点击时它没有提交它回声"加入"一切都被检查并提交到数据库,但我需要再次点击它以重定向到另一页。
$("#submit").click(function() {
$.post($("#myForm").attr("action"),
$("#myForm :input").serializeArray(),
function(info) {
$("#ack").empty();
$("#ack").html(info);
});
$("#myForm").submit(function() {
return false;
});
var ack = $("#ack").text();
if (ack.match('joined')) {
window.location.replace("user-login.php");
}
});
答案 0 :(得分:2)
您的问题是$.post()
是一个异步函数,并且您将代码视为同步。
换句话说,当浏览器到达这一行时:
var ack = $("#ack").text();
if (ack.match('joined')) {
window.location.replace("user-login.php");
}
POST
来电尚未结束,因此if
没有发生。
所以你需要在$.post()
函数的'success'回调中移动这个逻辑:
$.post(
$("#myForm").attr("action"),
$("#myForm :input").serializeArray(),
function(info) {
$("#ack").empty();
$("#ack").html(info);
if(info.match('joined')) {
window.location.replace("user-login.php");
}
}
);