关于ajax成功的if / else声明

时间:2012-12-25 17:12:24

标签: php javascript jquery ajax

我试图获取未读消息的反击: PHP代码(BubbleStat.php)如下所示:

$totalMsg = $mysql->totalRows("SELECT msg_id from messages WHERE msg_opened = 0 AND msg_receiver = '".$_SESSION["ActiveUserSessionId"]."'");
    echo $totalMsgs;

jQuery代码我有这个:

$.ajax({
type: "POST",
url: '/BubbleStat.php',
cache: false,
success: function(html)
    {
        $("#Bubble_Msg").show(); 
    } 
});

那么我如何在#Bubble_Msg中获取未读消息的计数器? 如果计数器没有未读消息来隐藏div #Bubble_Msg会很好。

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

如...... .text()

$("#Bubble_Msg").text(html).show();

如果html - 命名变量实际上包含HTML,那么...... .html()代替。

答案 1 :(得分:1)

以这种方式使用它:

success: function(html)
{
    $("#Bubble_Msg").html(html).show(); 
} //-----------------------^^----------this html is the param passed in the 
  //-----------------------------------success function

答案 2 :(得分:1)

试试这个:

success: function(html) {

    // Check if the Counter have unread messages
    if (parseInt(html) > 0) {
        $("#Bubble_Msg").text(html).show();
    }
    else {
        $("#Bubble_Msg").hide();
    }
}​

答案 3 :(得分:1)

您可以让PHP脚本返回JSON响应。

如果您需要在脚本中添加复杂性,它可能看起来像很多代码,但绝对值得。

1-确保无论发生什么都不会缓存响应:

header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');

2- json类型标题:

header('Content-type: application/json');

3-计算您需要知道的每个值:

$totalMsg = $mysql->totalRows("SELECT msg_id from messages WHERE msg_opened = 0 AND msg_receiver = '".$_SESSION["ActiveUserSessionId"]."'");

4-用它们构建一个数组:

$response = array(
    'total' => $totalMsg,
    'extra' => 'extra value (if needed)'
);
json编码中的

5- echo:

echo json_encode($response);

之后,您可以使用jQuery访问您的值:

$.ajax({
type: "POST",
url: '/BubbleStat.php',
cache: false,
dataType: 'json',
success: function(jsonData)
    {
        if (jsonData.total != null && jsonData.total != undefined)
        {                
            $("#Bubble_Msg").text(jsonData.total).show();
        } 
    } 
});

如果要使用变量,问题会变得更容易。