我不知道为什么我无法在JSON中获取成功消息。数据插入数据库很好,所以它可以工作,但回调消息(成功)没有。我不知道为什么。
此文件是在数据库中插入数据的位置。
include ("connect_to_mysql.php");
if ( isset($_POST['register'])) {
$First_Name = mysql_real_escape_string($_POST['firstname']);
$Last_Name = mysql_real_escape_string($_POST['lastname']);
$Email = mysql_real_escape_string($_POST['email']);
$Password = mysql_real_escape_string($_POST['password']);
$Gender = mysql_real_escape_string($_POST['gender']);
$sql3 =mysql_query("SELECT email FROM members WHERE email = '$Email' ");
$result3= mysql_num_rows($sql3) ;
$found ='';
if ($result3 == 1 ) {
$found = "email already exist ! ";
} else {
mysql_query("INSERT INTO members (firstname, lastname,gender, email, password,bio_body, sign_up_date , account_type)
VALUES( '".$First_Name."', '".$Last_Name."','".$Gender."','".$Email."','".$Password."','NULL' ,NOW() , 'a' ) ");
$found = "registered succefully !";
}
echo json_encode(array('returned_val' => "$found"));
//-- i have tried this also echo json_encode(array('returned_val' => $found));
}
这是我的ajax
$(document).ready(function(){
$('#register').click(function() {
$('#mydata').html('Saving your data...<img src="images/loading.gif" />');
$.ajax({
url: "sendata.php",
dataType: 'json' ,
data: {
firstname: firstname.value,
lastname: lastname.value,
email: email.value,
password: password.value,
gender: gender.value
},
type: 'POST',
success: function(data){
$('#mydata').html("<span style='font-size:18px; color: green;'> Your data is saved succefully! </span>").delay(3000).fadeOut('fast');
alert(data.returned_val);
alert (1);
}
});
});
});
OBS:关于mysql或一些安全性的东西(passowrd)我知道,当我解决这个问题时,我会修复它们。
谢谢你的时间。编辑:我没有错误消息
EDIT。 HTML格式
<form action="" method="post" enctype="multipart/form-data">
<table width="100%" class="noborder" >
<tr>
<td width="23%" height="47" class="right">First Name:</td>
<td width="77%" class="left left_nowrap">
<input type="text" class="left left_nowrap tb10 border1" name ="firstname" id="First_Name" value="<?php echo $_SESSION['firstname']; ?>" />
</td>
</tr>
<tr>
<td height="47" class="right">Last Name:</td>
<td valign="middle" class="left left_nowrap">
<input type="text" class="left left_nowrap tb10 border1" name ="lastname" id="Last_Name" value="<?php echo $_SESSION['lastname']; ?>" /><br/>
</td>
</tr>
<tr>
........
<td valign="middle" class="left"><input id="register" name="register" type="button" class="submit1 tb10 border4" value="Sign - Up" /></td>
答案 0 :(得分:0)
如果jQuery认为发送数据出错了,您可以使用error
回调(documentation),例如:
$.ajax({
url: "sendata.php",
dataType: 'json' ,
data: {
firstname : firstname.value,
lastname : lastname.value,
email : email.value,
password : password.value,
gender : gender.value
},
type : 'POST',
success: function(data){
$('#mydata').html("<span style='font-size:18px; color: green;'> Your data is saved succefully! </span>").delay(3000).fadeOut('fast');
alert(data.returned_val);
alert (1);
},
error: function(data){
console.log(data);
}
});
通过查看控制台中打印的数据,您应该能够了解为什么jQuery不会调用您的成功回调。
答案 1 :(得分:0)
您应该检查PHP错误日志。那里必有一些东西。由于PHP方面的一些错误,你的javascript可能没有回复任何答案。如果PHP错误日志中没有任何内容,那么在ajax请求中实现错误处理程序,那里必须有一些东西。
答案 2 :(得分:-1)
使用console.log(data)
快速验证ajax响应。