如何从ajax只获取一个返回数据的值

时间:2016-01-09 05:51:11

标签: php jquery ajax

我有问题从ajax调用中获取一个返回数据值来做出决定。 这是我调用php文件的jquery代码。

var displayMsg = $.ajax({
    url:"displayMessage.php"    
});
displayMsg.done(function(data){
    // I need to put an if condition in here.
})

这是我的" displayMessage.php"从会话中获取其值的文件

<?php 
session_start();
include "classes.php";
$chat = new chat();

$chat->setSenderUserName($_SESSION['userName']);
$chat->setReceiverUserName($_SESSION['receiverUserName']);
$chat->displayMessage();
?>

此文件将调用主文件中的函数,这就是该函数

public function displayMessage(){
    include "connection.php";
    $displayMsg = $connection->prepare("select date, senderUserName, message from messages where (senderUserName = ?
    and receiverUserName = ?) or (senderUserName = ? and receiverUserName = ?) order by date desc");
    $displayMsg->bind_param("ssss", $senderUserName, $receiverUserName, $receiverUserName, $senderUserName);

    $senderUserName=$this->getSenderUserName();
    $receiverUserName=$this->getReceiverUserName();

    $displayMsg->execute();
    $displayMsg->store_result();

    $displayMsg->bind_result($messageDate, $senderUserName, $message);
    while($displayMsg->fetch()){
        $this->setSenderUserName($senderUserName);
        $this->setMessage($message); 
        $this->setMessageDate($messageDate);
        ?>
        <span style="color:#00F"> <?php echo $this->getSenderUserName(); ?></span>&nbsp; says: <br />
        <?php echo $this->getMessage(); ?>
        <span class="date"><?php echo $this->getMessageDate(); ?></span><br />
        <?php
    }
}

现在我想访问messageDate值,将其与ajax调用成功部分(或完成部分)中的当前时间进行比较,但我不知道如何。 我在网站上尝试了一些与我的情况接近的解决方案,但它们都没有工作,我收到Undefined或object Object。 像:

$(data).find(".date").html();
$(data).find(".date").text();
$(data).find(".date").val();
$(date['date']);

1 个答案:

答案 0 :(得分:0)

如果您确定displayMessage.php返回响应内容,请使用此代码而不是您的jquery代码:

var displayMsg = null;
$.ajax({
url:"displayMessage.php",
success:function(data){
   displayMsg  = data;
       displayMsg.done(function(data){
       // I need to put an if condition in here.
       });
} 
});

请务必检查成功函数内的条件,因为ajax可能需要很长时间才能响应,而jquery不会等待它并继续运行下一个命令。