我认为我在正确的PHP和AJAX文件之间传递变量的方式不正确。
我正在通过触发$status = 'info';PHP文件中的第二个条件来调试它。
$status = 'info';
目前,status对于“alert(data.status);
status
alert(data.status);
signup_process.php
if (condition){ $status = 'success'; else { $status = 'info'; }
AJAX
function send() { var data = $('#signup_form').serialize(); $.ajax({ type: "POST", url: "signup_process.php", data: data, 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; };
我知道第二个条件正在被触发,因为我在其中放置了一个标头重定向,仅用于测试,它工作正常。
在将数据从php返回到ajax时很好用 json 。
$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; };