Intereting Posts
как и когда использовать токен обновления с php google calender api После того, как поле aliasing sql выбрано, я не могу получить доступ к результату в php Приложение PhalconPHP MVC Micro: укажите путь запроса и верните код ответа Страница обслуживания ZF2 MySQL и PHP загружают более 1000 элементов, заставляет замораживать браузер Медленная выборка содержимого из URL-адреса Ошибка переадресации Laravel 5 Предупреждение DataTables: данные JSON с сервера не могут быть проанализированы. Это вызвано ошибкой форматирования JSON конвертировать любую строку даты в метку времени без часового пояса Как сохранить пароль пользователя с помощью Bcrypt Невозможно загрузить композитор – 1 и 1 с доступом ssh к серверу Внедрить связанный список в php Примечание: Неопределенное смещение: 0 в Кодирование / экранирование управляющих символов JSON Ошибка 1148 MySQL Использованная команда не допускается с этой версией MySQL

Jquery Ajax PHP – Как определить, успешно ли выполняется PHP-код?

Итак, это моя идея, у меня есть диалоговое окно jQuery для входа в систему на моей домашней странице, которое запрещает кому-либо использовать веб-страницу (за диалогом формы входа). Я использую ajax для отправки информации, введенной на php-страницу, которая затем проверяет, существует ли комбинация имени пользователя / пароля в базе данных. Если это произойдет, я вернусь, а затем закрою диалоговое окно (разрешая доступ к сайту).

Как использовать ajax для проверки того, возвращает ли мой PHP-скрипт (с исполняемой страницы) true или false? Я предполагал, что параметры успеха / ошибки функции ajax проверяли это, но приведенный ниже код не работает.

$('.login').dialog({ closeOnEscape: false, title: false, modal: true, width: 'auto', show: {effect: "fade", duration: 1500}, title: 'Login', buttons: { "Login": function() { $.ajax({ async: false, type: 'POST', url: 'sql/login.php', success: function(){ alert( "Success!"); }, error: function(){ alert( "Failed!" ); }, dataType: "html" }); } } }); $(".login").dialog().parents(".ui-dialog").find(".ui-dialog-titlebar").remove(); 

То, что я сделал, это поставить эхо в конце моего php с помощью переменной, которая помещается в true или false, я сделал эту функцию внутри опции success, это так:

 success: function(response){ if(response){ alert( "Success!"); }else{ alert( "Failed!" ); } } 

Это сработало для меня, и вы можете поместить это в php

 if($myvar){ $anothervar=1; }else{ $anothervar=0; } echo $anothervar; 

поэтому вы можете сделать это:

 success: function(response){ if(response==1){ alert( "Success!"); }else{ alert( "Failed!" ); } } 

это способ, которым я это делаю, и он отлично работает. Надеюсь, это полезно.

Нет. Параметры успеха и ошибки связаны с успехом или сбоем запроса XHR. Вам нужен ваш php-скрипт для вывода чего-либо и проверки этого. Например, если ваш php-скрипт выводит «ok» (т.е. echo("ok"); ), если проверка прошла успешно, вы должны использовать запрос ajax, такой как этот

 $.ajax({ url: 'sql/login.php', success: function(data) { if(data=="ok") { alert('Login successfull.'); } else { alert('Login failed.'); } } }); 

В вашем login.php:

  if($_POST['data']){ $curData = $_GET['country']; $query = "SELECT * FROM yourTable WHERE tblData = '$curData'"; $result = mysql_query($query) or die; if($result>0) echo "<p class='checkExistance'>Data Exists</p>"; else echo "<p class='checkExistance'>Data doesnt Exist</p>"; } 

В вашем javascript:

 function isSuccess(){ if($('.checkExistance').text() === "Data Exists"){ success($('.checkExistance').text()); //alert success! }else{ success($('.checkExistance').text()); } } 

На самом деле не проверял, работает ли это, но вы в значительной степени получаете эту идею. В вызове AJAX сделайте следующее:

 $.ajax({ // .. success:isSuccess }); or success:function(){ if($('.checkExistance').text() === "Data Exists"){ success($('.checkExistance').text()); //alert success! }else{ success($('.checkExistance').text()); } } 

Убедитесь, что вы реализуете alert () в функции success (). Надеемся, что это поможет.

Согласно вашей информации, я предположил, что ваша php-страница проведет проверку, и вы сделаете так, чтобы они вернули true или false внутри php-скрипта

В вашем коде есть 2 проблемы

1. Ваша php-страница вернет true или false внутри себя, с другой стороны, они не отправят результат в результат ajax, если вы не отправите их, как указано выше Tomm

2.success () и error () из $ .ajax определяются успешностью запроса NOT BY RESULT, что означает, что даже если ваше php-эхо «false» оно вызовет событие success (), потому что ЗАПРОС УСПЕШНО ОТПРАВЛЯЕТ.