Jquery:重载主页使用其他页面返回值


Jquery: Reload Mainpage Using other page return value

mainpage.php, 
loginModal.php, 
signInvalidate.php

我有一个页面有一个按钮,当点击一个模态对话框弹出,模态的内容是来自其他页面(loginModal.php)使用jquery .load,所以模态的内容现在是一个登录表单,使用jquery ajax验证发送信息到signInvalidate.php。我对验证没有问题,它仍然返回错误,如果它是错误的,但如果它是正确的信息,我想重新加载主页。我该怎么做呢?或者Jquery .load接受返回TRUE值。

signInvalidate.php

$result = $userFunction->checkLogin($useremail, @$password, @$remember, $gotUrl);
if($result == TRUE){
    return TRUE;
}

loginModal.php

success: function(msg){
    if(msg == TRUE){
        return true;
    }else{  
        $("#signInOutput").html(msg);
    }
}

mainpage.php

$('#previewOutput').load('modalLogin.php', function(){                        

});

你可能应该返回一个JSON对象,它有一个已知的键(如status)和值(如success),你可以检查。

在PHP端,你可以使用(假设是5.2+)代替return TRUE:

print json_encode(array('status' => 'success' ));

如果需要返回而不是打印,显然应该更改它。在Javascript方面,你只需要对其进行json解码并处理:

success: function(data) {
  var state = $.parseJSON(data);
  if(state.status == 'success') {
     window.reload();
  }
}

我认为上面的代码还需要一些修改,但它应该是一个很好的基础。

编辑:修复代码