2013-09-05 7 views
0

Независимо от того, что я набираю в моем файле edit_data.php, я всегда получаю сообщение об успешном завершении. Я не могу настроить ошибку или, в данном случае, успешную обработку, поскольку она всегда говорит, что мои переменные не определены.Сообщение JQuery AJAX Always Success -

Как настроить обработку ошибок, если все мои переменные сохраняют ошибки с неопределенными?

function UpdateDB() { 

     // DEBUG 
     alert('UPDATED DB!'); 

     //Hide All Alerts 
     $('.alert').hide(); 

     //Show processing message. 
     $('#processing_alert').fadeIn(1000);    

     // Run MySQL Script 
     $.ajax({ 
      url: 'edit_data.php', 

      success: function(data, status, error) { 

      // IF SUCCESSFUL 

      //Hide All Alerts 
      $('.alert').hide(); 

      //Show processing message. 
      $('#databaseS_alert').fadeIn(1000); 
      $('#generated_msg_placehold').after('<h4>Original Request: ' + $data + '</h4>'); 
      $('#generated_msg_placehold').after('<h4>Status: ' + $status + '</h4>'); 
      $('#generated_msg_placehold').after('<h4>Error: ' + $error + '</h4>'); 

      }, 

      error: function(data, status, error) { 

      // IF FAILED 

      //Hide All Alerts 
      $('.alert').hide(); 

      //Show processing message. 
      $('#databaseF_alert').fadeIn(1000); 
      $('#generated_msg_placehold').after('<h4>Original Request: ' + $data + '</h4>'); 
      $('#generated_msg_placehold').after('<h4>Status: ' + $status + '</h4>'); 
      $('#generated_msg_placehold').after('<h4>Error: ' + $error + '</h4>'); 

      } 

     });  

} 

Любые предложения?

+0

Какова точность ошибок в неопределенных переменных? – PherricOxide

+0

Что такое 'edit_data.php', которое должно быть возвращено? это не дает никакого контекста. – PlantTheIdea

+5

Вы используете имя переменной, добавленное с '$' .. Но ваши аргументы не имеют этого. Либо добавьте $ к своим аргументам, либо удалите их изнутри в mnethod –

ответ

4

Вам не нужны знаки доллара перед переменными в Javascript. Вероятно, поэтому они все выглядят как неопределенные. Должно быть,

 success: function(data, status, error) { 

     // IF SUCCESSFUL 

     //Hide All Alerts 
     $('.alert').hide(); 

     //Show processing message. 
     $('#databaseS_alert').fadeIn(1000); 
     $('#generated_msg_placehold').after('<h4>Original Request: ' + data + '</h4>'); 
     $('#generated_msg_placehold').after('<h4>Status: ' + status + '</h4>'); 
     $('#generated_msg_placehold').after('<h4>Error: ' + error + '</h4>'); 

     }, 

     error: function(data, status, error) { 

     // IF FAILED 

     //Hide All Alerts 
     $('.alert').hide(); 

     //Show processing message. 
     $('#databaseF_alert').fadeIn(1000); 
     $('#generated_msg_placehold').after('<h4>Original Request: ' + data + '</h4>'); 
     $('#generated_msg_placehold').after('<h4>Status: ' + status + '</h4>'); 
     $('#generated_msg_placehold').after('<h4>Error: ' + error + '</h4>'); 

     } 
+0

Спасибо @PherricOxide! – Skowt

0

Успех/провал с точки зрения AJAX на основе ответа HTTP, полученные для запроса. Ответ на 200 - это успех. Таким образом, даже если PHP-скрипт отправил сообщение, например Epic fail, если вы также не изменяете заголовки, чтобы также возвращать некоторый заголовок ошибки (например, код ответа 4XX или 5XX), вы всегда будете использовать обработчик успеха.