我在stackoverflow.com上尝试过很多例子 jQuery ajax success error
但总是给我错误。
每当我运行下面的代码如果ajax代码错误然后ajax显示错误消息但是当php有错误代码时ajax总是显示成功:函数(数据)代码。
因为我知道 data.status =='成功' 没有从php进行比较所以我的代码会出错
我知道这个问题是重复但我看到stackoverflow的所有问题都没有解决我的问题所以我再次发布
请帮助
AJAX代码
$(document).ready(function () {
$(function () {
$('.contactf').submit(function (e) {
e.preventDefault();
if (!contactvalid())
return false;
$(this).find(":submit").prop("disabled", true);
$('#gif').css('display', 'block');
var form = $(this);
var post_url = 'contactmail1.php';
var post_data = form.serialize();
$.ajax({
type: 'POST',
url: post_url,
data: post_data,
success: function (data) {
if (data.status == 'success') {
alert(data);
} else if (data.status == 'error') {
alert(data);
}
},
error: function (data) {
alert('failed client side');
}
});
});
});
});
PHP
<?php
//
header('Content-type: application/json');
if ( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' ) {
require 'phpmailer/PHPMailerAutoload.php';
$name = $_POST[ 'Name' ];
$email = $_POST[ 'Email' ];
$phone = $_POST[ 'number' ];
$sub = $_POST[ 'contact_subject' ];
$msg = $_POST[ 'Message' ];
if ( !( isset( $_POST[ 'Name' ] )and isset( $_POST[ 'Email' ] )and isset( $_POST[ 'number' ] )and isset( $_POST[ 'contact_subject' ] )and isset( $_POST[ 'Message' ] ) ) ) {
echo "Some Field is Blank";
} else {
$mail = new PHPMailer;
$mail->setFrom( $email, $name );
$mail->addAddress( 'mail@gmail.com', 'Inderjeet' );
$mail->Subject = 'Mail from site';
$mail->msgHTML( '<html><body><table border=0 width=554><tr><td colspan=2><p><b>Enquiry from Contact Page Thorsoncne.com</b><br><br></p></td></tr><tr><td colspan=2 class=text4>FORM submitted at ' . date( 'd F Y h:i:s A' ) . '<br></td></tr>
<tr><td width=200 class=text3>Name :</td><td class=text3>' . $name . '</td></tr>
<tr><td>Email Id :</td><td>' . $email . '</td></tr>
<tr><td>Phone/Mobile :</td><td>' . $phone . '</td></tr>
<tr><td>Subject :</td><td>' . $sub . '</td></tr>
<tr><td>Message :</td><td>' . $msg . '</td></tr>
</table></body></html>' );
if ( !$mail->send() ) {
$response_array['status'] = 'failed';
echo "Mailer Error: " . $mail->ErrorInfo;
echo json_encode($response_array);
} else {
$response_array['status'] = 'success';
echo json_encode($response_array);
echo "Query Submitted";
}
}
}
答案 0 :(得分:1)
更改您的Java脚本代码 - 添加dataType: "json"
$(document).ready(function() {
$(function() {
$('.contactf').submit(function(e) {
e.preventDefault();
if (!contactvalid()) return false;
$(this).find(":submit").prop("disabled", true);
$('#gif').css('display', 'block');
var form = $(this);
var post_url = 'contactmail1.php';
var post_data = form.serialize();
$.ajax({
type: 'POST',
url: post_url,
dataType: "json",
data: post_data,
success: function(data) {
if (data.status == 'success') {
alert(data);
} else if (data.status == 'error') {
alert(data);
}
},
error: function(data) {
alert('failed client side');
}
});
});
});
});
在echo echo "Query Submitted";
json_encode($response_array);