2016-11-18 4 views
0

Попытка выяснить, как сообщать об этом всплывающем окне только при сбое. В настоящее время это работает, но он предупреждает как для успеха и неудачи:Отчет об успехе и неудаче AJAX

<script> 
function Unlock() { 
    var pin=prompt("You must enter pin to unlock"); 
    $.ajax(
    { 
     url: 'pin.php', 
     type: 'POST', 
     dataType: 'text', 
     data: {data : pin}, 
     success: function(response) 
     { 
      alert(response); 
      console.log(response); 
     } 
    }); 
} 
</script> 

Я попытался следующие, но до сих пор не повезло:

<script> 
function Unlock() { 
    var pin=prompt("You must enter pin to unlock"); 
    $.ajax(
    { 
     url: 'pin.php', 
     type: 'POST', 
     dataType: 'text', 
     data: {data : pin}, 
     success: function(response) 
     { 
      console.log(response); 
     }, 
     error: function(response) 
     { 
      alert(response); 
      console.log(response); 
     } 
    }); 
} 
</script> 

Любая помощь будет оценена. Благодаря!

* EDIT *

Вот полный код:

<?php 
    $static_password = "1234"; 
    if(isset($_POST['data'])){ 
     $submit_password = $_POST['data']; 
     if($submit_password == $static_password){ 
      die("UNLOCK THE RECORD"); 
     } 
     else{ 
      die("SORRY WRONG PIN"); 
     } 
    } 
?> 
<html> 
<head> 
    <script src="js/jquery-3.1.1.min.js" type="text/javascript"></script> 
</head> 
<body> 
<h2>Simple AJAX PHP Example</h2> 
<a href="javascript:Unlock();">UNLOCK</a> 
<p>Pin is "1234"</p> 
<script> 
function Unlock() { 
    var pin=prompt("You must enter pin to unlock"); 
    $.ajax(
    { 
     url: 'pin.php', 
     type: 'POST', 
     dataType: 'text', 
     data: {data : pin}, 
     success: function(response) 
     { 
      alert(response); 
      console.log(response); 
     } 
    }); 
} 
</script> 
</body> 
</html> 
+0

Можете ли вы поделиться код сервера? Кажется, что ваш сервер возвращает код не 20 * –

+0

Какой ответ вы видите, когда это неправильный вывод? – trincot

+1

Что вы подразумеваете под ** сбоем **? Пустой ответ или код статуса HTTP! = 200? – hindmost

ответ

4

Для будет выполняться обратный вызов ошибки, сервер должен отвечать со статусом 404, 500 (внутренняя ошибка) и т.д. Когда вы пишете die('blah'); сервер отвечает статусом 200 и сообщением, с которым оно умерло. Это успешный запрос как для AJAX, так и для PHP.

Вы должны проверить ответ

if($submit_password == $static_password){ 
    die("UNLOCK THE RECORD"); 
} 

затем:

success: function(response) 
    { 
     if (response == 'UNLOCK THE RECORD') { /* success */ } 
     else { /* failure, do what you will */ } 
    } 
+0

См. http://stackoverflow.com/ помощь/форматирование – Barmar

+0

Сорри Barmar. :) – Criss

+0

Отлично! Выбирает желаемую функцию. Еще нужно сломать его больше. Спасибо вам за помощь. – Atomiklan