Я знаю, что есть много ответов о моей проблеме, но я новичок в ajax и javascript. Я хотел бы, чтобы кто-то указал мне на проблему, вызвав ошибку моего сценария.
Я сделал регистрацию с помощью ajax на основе этого ответа Check if user logged in on ajax page change. Когда нажата кнопка отправки, функция проверяет, вошел ли пользователь в систему или нет. Я хочу показать предупреждение, если его нет, и перейти на следующую страницу, если это так.
Моя JavaScript:Ajax для проверки входа в систему не работает и отправляет форму
$('#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, и я не знаю, где проблема. Функция возвращает предупреждение для не зарегистрированного пользователя, несмотря на то, что пользователь вошел в систему.
Удалите 'обратный json_encode ($ ответа); ' – RiggsFolly
И echo не нуждается в скобках, поэтому' echo $ response; ' – RiggsFolly
Вы смотрели запрос/ответ AJAX в инструментах разработчика браузера? Включили ли вы библиотеку jQuery в проект? Есть ли сообщения об ошибках? Вы используете это на веб-сервере? Как вы устанавливаете 'BASE_URL'? –