2016-04-09 8 views
0

Ich versuche, einige PHP-Code mit Ajax zu nennen:Aufruf PHP-Code mit Ajax führt zu einem Fehler

$(document).ready(function() { 
    $("#email_address").on("keypress", function() { 
     request = $.ajax({ 
      url: '../verify_email.php', 
      data: {email: $("#email_address").val(), 
        submitted: true}, 
      type: 'post' 
     }); 

     request.done(function(response) { 
      //fooling around to see if this works 
      if(response) { 
       alert("valid email"); 
      } else { 
       alert("invalid email"); 
      } 
     }); 

     request.error(function(response) { 
      alert("an error occurred"); 
     }); 
    }); 
}); 

jedoch die request.error Funktion ausgeführt wird. Ich bin mir nicht sicher warum. Hier ist der PHP-Code:

<?php 
    if(isset($_POST['submitted']) and isset($_POST['email'])) { 
     if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { 
      echo 'true'; 
     } else { 
      echo 'false'; 
     } 
    } 
?> 

Vielen Dank im Voraus.

+1

was Sie in der Antwort haben? – Tal87

+1

Werfen Sie einen Blick auf die Registerkarte Netzwerk in Chrome Web Inspektor (Filter XHR), sollten Sie alle Informationen erhalten Sie von dort;) – paulgv

Antwort

1

Pfui, noob Fehler. Ich hatte die PHP-URL festgelegt, um relativ zu der JS-Datei statt zu der Webseite zu sein. es war sein soll:

request = $.ajax({ 
     url: 'verify_email.php' 

statt

request = $.ajax({ 
     url: '../verify_email.php', 

ich es dachte, mit der Verwendung von Chrome-Web-Inspektor aus. Ich habe heute zwei neue Dinge gelernt: Was muss die URL sein und wie wird der Webinspektor von Chrome verwendet? bedankt sich bei allen für Ihre Hilfe

+1

Hallo @Matt, die Rückkehr wahr/falsch in PHP-Datei funktioniert gut in Javascript? – Cuchu

+1

Hallo @Cuchu - danke für die Erinnerung. Das war ein anderes Problem, das ich mit dem Code hatte. Ich wusste nicht, dass ich Werte wiederholen musste. Ich habe die Frage bearbeitet, um das zu reflektieren, um die Leute nicht zu verwirren. Danke – Matt

1

Wenn Ihre URL funktionieren, in php versuchen json zurückzukehren;)

<?php 
    $return = false; 

    if(isset($_POST['submitted']) and isset($_POST['email'])) { 
     if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { 
      $return = true; 
     } else { 
      $return = false; 
     } 
    } 

header('Content-Type: application/json'); 
echo json_encode(array('result' => $return)); 
die; 

?> 

Und in Javascript-Versuch:

request.done(function(response) { 
      //fooling around to see if this works 
      if(response.result) { 
       alert("valid email"); 
      } else { 
       alert("invalid email"); 
      } 
     }); 
+0

nett! Ich gebe das eine Chance :) – Matt

Verwandte Themen