我认为我不会在我单独的PHP和AJAX文件之间以正确的方式传递变量。
我正在通过触发PHP文件中的第二个条件$status = 'info';
来调试它。
目前,[{1}}
的status
即将显示为“未定义”
signup_process.php
alert(data.status);
AJAX
if (condition){
$status = 'success';
else {
$status = 'info';
}
我知道第二个条件正在被触发,因为我把一个标题重定向只是为了测试而且它工作正常。
答案 0 :(得分:7)
很好地使用 json ,同时将数据从php返回到ajax。
$return_data = array();
if (condition){
$return_data['status'] = 'success';
} else {
$return_data['status'] = 'info';
}
echo json_encode($return_data);
exit();
现在,如果你将json数据返回给ajax,那么你需要将返回数据类型指定为ajax ,如下所示
function send() {
var data = $('#signup_form').serialize();
$.ajax({
type: "POST",
url: "signup_process.php",
data: data,
dataType: 'json',
success: function (data) {
alert(data.status);
if (data.status == 'success') {
// everything went alright, submit
$('#signup_form').submit();
} else if (data.status == 'info')
{
console.log(data.status);
$("label#email_error").show();
return false;
}
}
});
return false;
};
答案 1 :(得分:3)
你应该从php发送一个JSON对象:
$data = array();
if (condition){
$data['status'] = 'success';
else {
$data['status'] = 'info';
}
header('Content-type: application/json');
echo json_encode($data);
json_encode()方法将数组转换为JSON对象,以便您可以在js端按名称访问每个数组键。