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

时间:2017-04-20 05:58:03

标签: php jquery ajax

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

$staus = "pass";

或:

$status = "fail";

然后在我的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数据时,我在谷歌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";
}
}

3 个答案:

答案 0 :(得分:1)

试试这个:

$(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);
}

答案 1 :(得分:0)

我猜是这样的:

&#13;
&#13;
<?php
  $staus = "pass";
  ?>
  <script>
    const staus = <?php echo $staus?>
    console.log(staus);
  </script>
  <?php
  // PHP Code...
?>
&#13;
&#13;
&#13;

我在EJS(节点)中做了类似的事情

答案 2 :(得分:0)

在ajax响应中,您将获得PHP的所有回显值。如果您希望您的ajax为变量提供结果,那么您可以使用JSON数据类型来检索数组中的数据。有关详细信息,请参阅this链接