JQuery从php文件返回数据

时间:2017-02-09 12:48:57

标签: javascript php jquery ajax

我是JQuery的新手。我已经设法从PHP脚本将数据返回到JQuery但是现在当我从php脚本向用户显示返回的消息时,我会看到消息<!--Separate connection with sessions -->,我只想使用alert向用户显示我的消息( )。

  1. 有人可以解释这是什么意思吗?
  2. 如何避免将其显示在警告框中?
  3. 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();
        });
    });
    

2 个答案:

答案 0 :(得分:1)

<!--Separate connection with sessions -->

这是一个HTML注释,它可能意味着当你从jQuery调用PHP脚本时,HTML也被添加到响应的某个地方。

即。你的PHP&#34;页面&#34;不仅回应你的信息;它也回应了HTML。

快速解决方法是在回显消息后立即终止PHP脚本,以防止任何其他输出返回到jQuery。

echo $message;
die;   // Add this

这将在您回显消息后终止脚本,并且不允许生成任何其他输出。

如果在添加die后仍然看到HTML,则可能表示在回显邮件之前添加了HTML。在这种情况下,它可能位于initialize.php中,您必须阻止其他脚本回显任何内容。

答案 1 :(得分:1)

返回这样的数据:

$ returnArr =阵列();   returnArr [&#39;消息&#39;] = $消息;

echo json_encode(returnArr);

出口;

并在客户端使用此代码 警报(data.message);