2017-05-16 3 views
1

Ich bin sicher, das ist eine einfache Lösung, aber ich hatte keinen Erfolg in meinen Versuchen, wie meine jQuery & Ajax ist nicht die größte. Ich mache einen Ajax-Aufruf an mein PHP-Skript, das eine Fehlerprüfung für ein Formular durchführt. Wenn es Fehler gibt, zeige ich ein verstecktes div und zeige die Fehlermeldungen kein Problem an. Wenn jedoch keine Fehlermeldungen angezeigt werden, möchte ich eine Warnung anzeigen. Das Problem ist, die Warnung nicht angezeigt, wenn es keine FehlerReturning PHP-Variable von jQuery Ajax Call

Javacript

 $.ajax({ 
     url: '../assets/inc/process.php', 
     type: 'post', 
     data: formData, 
     dataType: 'html' 
      }) 
      .always(function(data){ 
       if (data == 'success'){ 
        alert('it worked!'); 
       } 
       else{ 
        $('#responsediv').show(); 
        $('#responsediv').html(data); 
       } 
      }); 
     }); 

ich auch

versucht haben
  if (data.success == 'success'){ 
       alert('it worked!'); 
      } 
      else{ 
       $('#responsediv').show(); 
       $('#responsediv').html(data); 
      } 

PHP

if ($result_new_row){ 
     $success = 'success'; 
     echo $success; 
    } 

weiß ich sicher, dass die Neue Zeile wird eingefügt, wie ich es in der Datenbank sehen kann.

Jede Hilfe wird geschätzt. Vielen Dank!

Antwort

0

die Daten von PHP als Array

PHP

if ($result_new_row){ 
     $return['result'] = 'success'; 
     //comment this out when you are positive it's working 
     echo "hello"; 
    } else { 
     $return['result'] = 'error'; 
    } 
    print(json_encode($return); 

jQuery

$.ajax({ 
    url: '../assets/inc/process.php', 
    type: 'post', 
    data: formData, 
    dataType: 'json' 
     }) 
     .always(function(data){ 
      if (data.result == 'success'){ 
       alert('it worked!'); 
      } else { 
       $('#responsediv').show(); 
       $('#responsediv').html(data); 
      } 
     }); 
    }); 

Pass zurück (PS-Datentyp sollte json sein) Wenn dies nicht korrekt zurückkehrt stellen Sie sicher, Ihre PHP-Funktion funktioniert zunächst richtig.

Wenn Sie Chrome verwenden, können Sie Ihre AJAX-Anrufe anzeigen, indem Sie den Inspektor aufrufen und zur Registerkarte Netzwerk wechseln. Wenn Sie auf XHR klicken, werden Ihnen alle AJAX-Anfragen angezeigt, was gesendet wird und wie die Antwort lautet.