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