2017-02-09 1 views
1

zurückgegeben Ich bin neu in JQuery. Ich habe es geschafft, Daten von PHP-Skript an JQuery zurückgeben, aber jetzt bekomme ich die Nachricht <!--Separate connection with sessions -->, wenn ich die zurückgegebene Nachricht von PHP-Skript für den Benutzer zeigen, und ich möchte nur meine Nachricht an den Benutzer mit alert() anzeigen.JQuery hat Daten aus der PHP-Datei

  1. Kann jemand erklären, was diese Bedeutung ist?
  2. Wie vermeidet man, dass es in der Alarmbox angezeigt wird?

PHP-Code:

<?php 
    include "initialize.php"; 
    if(empty($_POST) === false){ 
     global $con; 
     $message = ""; 
     $email = trim($_POST["email"]); 
     if(isSubscribed($email) === false){ 
      $message = "Thank you for subscribing to our latest updates"; 
      mysqli_query($con,"INSERT INTO subscribers(email) VALUES('".$email ."')"); 
     } 
     else{ 
      $message = "You already subscribed."; 
     } 
     echo $message; 
    } 
?> 

JQuery-Code:

$(function() { 
    $('#frms').on('submit', function (e) { 
     var email = $("#email").val(); 
     if (!validateEmail(email)) { 
      alert('Error: Make sure you provided a valid email address'); 
     } 
     else { 
      $.ajax({ 
       type: 'post', 
       url: 'initialize/subscribe.php', 
       data: $('#frms').serialize(), 
       success: function (data) { 
        alert(data); 
       } 
      }); 
     } 

     e.preventDefault(); 
    }); 
}); 
+1

'was bedeutet das? - was? –

Antwort

1
<!--Separate connection with sessions --> 

Dies ist ein HTML-Kommentar, und es bedeutet wahrscheinlich, wenn Sie den PHP-Skript von Ihrem jQuery nennen, dass HTML wird auch irgendwo zur Antwort hinzugefügt.

d. H. Ihre PHP- "Seite" spiegelt nicht nur Ihre Nachricht wider; Es ist Echo, dass auch HTML.

Eine schnelle Lösung besteht darin, das PHP-Skript sofort nach dem Echo Ihrer Nachricht zu beenden, um zu verhindern, dass eine andere Ausgabe an jQuery zurückgegeben wird.

Dies wird das Skript beenden, nachdem Sie Ihre Nachricht echo, und keine andere Ausgabe zu generieren.

Wenn Sie nach dem Hinzufügen von die immer noch den HTML-Code sehen, bedeutet dies wahrscheinlich, dass der HTML-Code hinzugefügt wird, bevor Sie Ihre Nachricht wiederholen. In diesem Fall könnte es in initialize.php sein und du müsstest verhindern, dass das andere Skript auch etwas zurückgibt.

+0

Ich habe das versucht, aber immer noch nicht funktioniert. – MCi

+0

Sie müssen nur '' es ist irgendwo in Ihrem Projekt. – BadHorsie

+0

Dank BadHorsie, fand ich heraus, dass diese Ausgabe '' wurde auf diesem Skript generiert 'initialize.php' – MCi

1

Rückgabedaten wie folgt aus:

$ returnArr = array(); returnArr ['Nachricht'] = $ Nachricht;

echo json_encode (returnArr);

Ausgang;

und auf Client-Seite verwenden Sie diesen Code alert (data.message);

+0

Ich habe diesen Code versucht und gibt mir jetzt diese Nachricht 'undefined' – MCi

+0

Das was ich bekomme' {"message": "Sie haben bereits abonniert."} 'Wenn ich Daten ausgabe 'alert (data)' nur – MCi

+0

verwenden Sie dies: var obj = jQuery.parseJSON (Daten); Warnung (obj.message); –