如何使用PHP为JQuery .ajax()返回正确的成功/错误消息?

我不断收到错误警报。MYSQL部分没有问题,查询得到执行,我可以在数据库中看到电子邮件地址。

<script type="text/javascript">

$(function() {

$("form#subsribe_form").submit(function() {

var email = $("#email").val();

$.ajax({

url: "subscribe.php",

type: "POST",

data: {email: email},

dataType: "json",

success: function() {

alert("Thank you for subscribing!");

},

error: function() {

alert("There was an error. Try again please!");

}

});

return false;

});

});

</script>

<?php 

$user="username";

$password="password";

$database="database";

mysql_connect(localhost,$user,$password);

mysql_select_db($database) or die( "Unable to select database");

$senderEmail = isset( $_POST['email'] ) ? preg_replace( "/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['email'] ) : "";

if($senderEmail != "")

$query = "INSERT INTO participants(col1 , col2) VALUES (CURDATE(),'".$senderEmail."')";

mysql_query($query);

mysql_close();

$response_array['status'] = 'success';

echo json_encode($response_array);

?>

回答:

如果您使用的是JSON dataType,则需要提供正确的内容类型。在回显json之前,放置正确的标头。

<?php    

header('Content-type: application/json');

echo json_encode($response_array);

?>

附加解决方案,您应该检查查询是否成功。

if(mysql_query($query)){

$response_array['status'] = 'success';

}else {

$response_array['status'] = 'error';

}

在客户端:

success: function(data) {

if(data.status == 'success'){

alert("Thank you for subscribing!");

}else if(data.status == 'error'){

alert("Error on query!");

}

},

希望能帮助到你。

以上是 如何使用PHP为JQuery .ajax()返回正确的成功/错误消息? 的全部内容, 来源链接: utcz.com/qa/398390.html

回到顶部