2017-07-08 6 views
0

Meine Validierungsfehler werden angezeigt, aber wenn ich das Feld einfüge und abschicke, passiert nichts. Ich vermute, etwas stimmt nicht in der Frage, aber ich kann es nicht sehen. Ich habe auch den Code für den Add-news-ajax.php enthaltenErfolgsmeldung wird bei erfolgreicher Übermittlung nicht ausgelöst

$(document).ready(function(){ 
      $('form').submit(function(e){ 
       e.preventDefault(); 
       var form = $("#form1").serialize(); 
       $.ajax({ 
        url: 'functions/add-news-ajax.php', 
        type: 'POST', 
        dataType: 'json', 
        data: form, 
       }) 

       .done(function (data) { 

        if (!data.success) { 

         if(data.errors.n_title) { 
          $("#title-error").hide().html(data.errors.n_title).fadeIn(); 
         } 

        } else { 

         alert(data.message); 
        } 
       }) 

       .fail(function (jqXHR, textStatus, errorThrown) { 
      console.log(textStatus + ': ' + errorThrown); 
     }); 
    }); 
}); 

hier ist die PHP von dem Ajax-Aufruf:

$errors = array(); 
$response = array(); 

if(empty($_POST['n_title'])) { 

    $errors['n_title'] = "<div class='alert alert-danger'> Title required </div>"; 
} 

$response['errors'] = $errors; 

if($errors) { 

    $message['success'] = false; 
    $response['message'] = "fail"; 

} else { 

    $message['success'] = true; 
    $response['message'] = "Success, yay!"; 
} 

echo json_encode($response); 
+0

Sie Fehlerprotokolle erhalten Sie Versuchen Sie, 'console.log (Daten)?; 'nach' .done (Funktion (Daten) {'Zeile. –

+0

Get: Object {Fehler: Array (0), Nachricht:" Erfolg! "} – Jonathan

+0

Wenn dies ist, was Sie in Daten erhalten, wie können Sie auf Daten zugreifen. Erfolg? –

Antwort

0

Die data.successundefined im Fall wären Sie nicht haben Erfolgsfeld in Ihrem data. Daher würde man nie heißen die sonst Fall, in dem Sie alert("success");

schreiben Wahrscheinlich würden Sie das getan Methode sein wollen wie folgt

done(function (data) { 

        if (data.message != "Success!") { 

         if(data.errors.n_title) { 
          $("#title-error").hide().html(data.errors.n_title).fadeIn(); 
         } 

        } else { 

         alert(data.message); 
        } 
       }) 
+0

Hmm nicht ausführt. Das funktioniert. Aber warum würde 'if (! Data.success) {' nicht funktionieren? Es ist in meinem PHP-Code '$ message ['Erfolg'] = true;' und '$ message ['Erfolg'] = false;' – Jonathan

+0

'$ message ['Erfolg'] = false;' - dies ist eine Aufgabe . Es bedeutet überhaupt nicht, dass "Erfolg" Teil der Daten war, die Sie in Ihrer Log-Nachricht erhalten. –

Verwandte Themen