如何在php中定义一个可以与jquery中的.done一起使用的变量

如何在php中定义一个可以与jquery中的.done一起使用的变量,php,jquery,ajax,Php,Jquery,Ajax,如果我有一些php逻辑导致: $staus = "pass"; 或: 在我的jQuery/Ajax中,我有: $(function() { $( "#send" ).click(function(e){ e.preventDefault(); $( "#send" ).prop( "disabled", true ); $( ".loader" ).show(); $( "#send" ).html( "Sending <img src='img/ajax-loader.gif'>

如果我有一些php逻辑导致:

$staus = "pass";
或:

在我的jQuery/Ajax中,我有:

$(function() {
$( "#send" ).click(function(e){
e.preventDefault();
$( "#send" ).prop( "disabled", true );
$( ".loader" ).show();
$( "#send" ).html( "Sending <img src='img/ajax-loader.gif'>" );
var form_data = $( "#contact-form" ).serialize();
 $.ajax({
  type: 'POST',
  url: 'send.php',
  data: form_data
}).done(function(response) {
 if(response.status == "pass")
// console log something here
但是当我尝试Console.log数据时,我在Google Chrome控制台中没有定义

if($_POST) {


$message = "";

if(empty($_POST['first_name'])) {

    $message .= "First name required<br/>";
}

if(empty($_POST['last_name'])) {

    $message .= "Last name required";
}

if($message) {

    echo "<div class='alert alert-danger'>" . $message . "</div>";
    $pass = "error";

} else {

    echo "<div class='alert alert-success'>Form submitted successfully</div>";
    $pass = "succeed";
}
}

我猜是这样的:

常数staus= 洛格斯塔斯;
在ajax响应中,您将从PHP获得所有echo值。若您希望ajax在变量中给出结果,那个么可以使用JSON数据类型来检索数组中的数据。有关更多详细信息,请参阅链接

$(function() {
$( "#send" ).click(function(e){
e.preventDefault();
$( "#send" ).prop( "disabled", true );
$( ".loader" ).show();
$( "#send" ).html( "Sending <img src='img/ajax-loader.gif'>" );
var form_data = $( "#contact-form" ).serialize();
 $.ajax({
  type: 'POST',
  url: 'send.php',
  dataType: 'json',
  data: form_data,
  success: function(json){
 if(json['error'])
{
$('#your_notification_div').html("<div class='alert alert-danger'>" +json['message']+ "</div>")
}
else
{
$('#your_notification_div').html("<div class='alert alert-success'>"+json['message']+"</div>")

}
}
});
});
});
编辑验证PHP文件:

    if($_POST) {
    $json = array();
    $message = '';
    if(empty($_POST['first_name'])) {
        $json['error'] = 'true';
        $message .=  "First name required<br/>";
    }
    if(empty($_POST['last_name'])) {
        $json['error'] = 'true';
        $message .=  "Last name required";
    }
    if(!isset($json['error'])) {
        $json['success'] = 'true';
        $message = 'Form submitted successfully';
    }
    $json['message'] = $message;
    echo json_encode($json);
}

你能包含更多的jQuery代码吗?是的,这些内容不足以给出你的答案。现在要编辑…请添加更多信息,比如Ajax请求中的响应格式和内容类型。显示你的php代码以给出完美的答复。我真的不知道你的意思是什么?我是否需要更改其他代码,或者我是否可以将成功替换为.done?请替换我的代码片段,并告诉我它是否有效。使用此代码时不会发生任何事情。页面上没有显示任何内容,也没有控制台输出。您是否可以检查js错误,因为我没有在控制台中测试它?或者如何?
    if($_POST) {
    $json = array();
    $message = '';
    if(empty($_POST['first_name'])) {
        $json['error'] = 'true';
        $message .=  "First name required<br/>";
    }
    if(empty($_POST['last_name'])) {
        $json['error'] = 'true';
        $message .=  "Last name required";
    }
    if(!isset($json['error'])) {
        $json['success'] = 'true';
        $message = 'Form submitted successfully';
    }
    $json['message'] = $message;
    echo json_encode($json);
}