如何使用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








