2017-02-09 103 views
1

我是JQuery中的新成員。我已經設法從php腳本將數據返回給JQuery,但是現在,當我將顯示從php腳本返回的消息顯示給用戶時,我看到消息<!--Separate connection with sessions -->,並且我只想使用alert()向用戶顯示我的消息。JQuery從php文件返回數據

  1. 有人可以解釋這是什麼意思?
  2. 如何避免它顯示到警報框?

PHP代碼:

<?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代碼:

$(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

'這是什麼意思' - 什麼? –

回答

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

這是一個HTML註釋,當你調用您的jQuery的PHP腳本,它可能意味着, HTML也被添加到響應的某處。

即您的PHP「頁面」不僅迴應您的消息;它也反映了HTML。

一個快速解決方法是在您回覆消息後立即殺死PHP腳本,以防止將任何其他輸出返回給jQuery。

echo $message; 
die; // Add this 

這將在您回覆消息後終止腳本,並且不允許生成任何其他輸出。

如果在添加die後仍然看到HTML,則可能意味着在回覆消息之前添加了HTML。在這種情況下,它可能在initialize.php中,您必須防止其他腳本也回顯任何內容。

+0

我嘗試過,但仍然無法工作。 – MCi

+0

你只需要找到'<! - 與會話分開的連接 - >'它在你的項目中的某個地方。 – BadHorsie

+0

感謝BadHorsie,我發現這個輸出'<! - 與會話的單獨連接 - >'正在這個腳本上產生'initialize.php' – MCi

1

返回類似這樣的數據:

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

echo json_encode(returnArr);

exit;

並在客戶端使用此代碼 alert(data.message);

+0

我確實嘗試過這個代碼,現在給我這個信息'undefined' – MCi

+0

這就是我得到的<! - 與會話分開的連接 - > {「message」:「您已經訂閱了。」}'當我輸出數據時'alert(data)'只有 – MCi

+0

使用這個:var obj = jQuery.parseJSON(data); alert(obj.message); –