我正在进行电子邮件验证。 基本上在js事件中,应该是通过json数据类型中的post发送数据的ajax调用,然后第二个ajax调用应该从处理程序中检索数据。 我不确定我做错了什么。这是两个简短的代码片段。
的jQuery
$(document).on('focuson',"input#signup_password_input",function(){
var this_user_input=$("input[name='signup_email_input']").val();
if ((error_one_passed==1)&&(error_two_passed==1)){
$.ajaxSetup({ cache:false });
$.ajax({
url: 'ajax_email_validation.php',
type: "POST",
dataType:'json',
data: ({email_validation_ajax: "+this_user_input+"}),
success: function(data) {
$.ajax({
url:'ajax_email_validation.php',
data: data,
dataType:'json',
success:function(data1) {
var response_from_database=data1;
}
});
}
});
}
});
PHP
include('mysql/database.php');
if (!isset($_POST["email_validation_ajax"])){$json_array = array('request' => error, 'response' => none);}
$dbcheck_email_validation=$_POST["email_validation_ajax"];
$dbcheck_email_validation=htmlspecialchars($dbcheck_email_validation);
$dbcheck_email_validation=mysql_real_escape_string($dbcheck_email_validation);
$dbcheck_email_validation_query=mysql_query("SELECT * FROM users WHERE email='$dbcheck_email_validation'",$db);
$dbcheck_email_validation_assoc=mysql_fetch_assoc($dbcheck_email_validation_query);
if (!empty($dbcheck_email_validation_assoc)){$json_array = array('request' => received, 'response' => negative);}
elseif (isset($_REQUEST["email_validation_ajax"])) {$json_array = array('request' => received, 'response' => affirmative);}
echo $_POST['email_validation_ajax'];
echo json_encode($json_array);
如果有人能够帮助我,我真的很感激。
答案 0 :(得分:0)
你请求了json,然后没有返回json。相反,你返回了一些纯文本+一些json。
echo $_POST['email_validation_ajax'];
echo json_encode($json_array);
你应该只返回json。
echo json_encode($json_array);
您还需要执行一次ajax调用。
$.ajax({
url: 'ajax_email_validation.php',
type: "POST",
dataType: 'json',
data: {
email_validation_ajax: this_user_input // << this was also incorrect
},
success: function (data) {
var response_from_database = data;
}
});