我知道我的问题有很多答案,但我是ajax和javascript的新手我希望有人指出导致我的脚本失败的问题。
我根据这个答案Check if user logged in on ajax page change使用ajax进行了登录检查。单击提交按钮时,该功能会检查用户是否已登录。如果不是,我想显示警告,如果是,则显示下一页。
我的javascript:
$('#bookForm').submit(function(){
$.ajax({
url : '<?=BASE_URL?>user/logged.php',
success : function(response){
if (response.logged == true) {
return true;
}else{
alert('you need to log in');
//e.preventDefault();
return false;
}
}
});
});
我的php脚本检查用户是否已登录:
$response = array();
if(!isset($_SESSION['userId'])) {
$response['logged'] = false;
}else{
$response['logged'] = true;
}
$response = json_encode($response);
echo($response);
我是javascript / ajax的新手,我不确定问题出在哪里。尽管用户已登录,该函数仍会返回未登录用户的警报。
答案 0 :(得分:0)
您必须在ajax调用中添加此选项:dataType:'json'
。
并回显json_encode($ response);没有任何回报。
答案 1 :(得分:0)
在Jquery代码中进行以下更改。
$('#bookForm').submit(function(event){
event.preventdefault();
$.ajax({
url : '<?= BASE_URL ?>user/logged.php',
dataType:'json'
success : function(response){
if (response.logged == true) {
return true;
}
else{
alert('you need to log in');
//e.preventDefault();
return false;
}
}
});
});
从php脚本中删除return json_encode($response);