2

我试图获取未读消息的计数器: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

4 回答 4

1

如... .text()

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

如果html-named 变量实际上包含 HTML,则....html()改为。

于 2012-12-25T17:13:58.230 回答
1

以这种方式使用它:

success: function(html)
{
    $("#Bubble_Msg").html(html).show(); 
} //-----------------------^^----------this html is the param passed in the 
  //-----------------------------------success function
于 2012-12-25T17:16:56.813 回答
1

试试这个:

success: function(html) {

    // Check if the Counter have unread messages
    if (parseInt(html) > 0) {
        $("#Bubble_Msg").text(html).show();
    }
    else {
        $("#Bubble_Msg").hide();
    }
}​
于 2012-12-25T17:32:36.587 回答
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)'
);

5- json 编码中的回显:

echo json_encode($response);

After then, you could access your value with jQuery like this:

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

The problem looks easier if you get variables to work with.

于 2012-12-25T17:49:44.887 回答