使用jquery进行PHP变量更新

时间:2011-04-19 14:36:14

标签: jquery ajax

我使用以下代码,但似乎无法让它工作。如果有人可以帮助或指出我正确的方向,这将是伟大的。我想要实现的是facebook风格的警报,其中警报将在不刷新页面的情况下出现。警报数量来自数据库中的行数。我做了什么蠢事吗?

jQuery的:

<script type="text/javascript">
var alertNumber = <?php echo $display['alertNumber']; ?>;
setTimeout(checkVariableValue, 2000);
function checkVariableValue() {
     $.ajax({
        url: 'jquery.php?query='.alertNumber,
        success: function(newAlert) {
            if (newAlert != alertNumber);
                alertNumber = newAlert;
                document.getElementById("wibble").innerHTML=alertNumber;
            }
     });
}
</script> 

6 个答案:

答案 0 :(得分:6)

这一行

url: 'jquery.php?query='.alertNumber,

应该是

url: 'jquery.php?query='+alertNumber,

答案 1 :(得分:3)

url: 'jquery.php?query='.alertNumber,
在我眼里错了。它必须是url: 'jquery.php?query=' + alertNumber,

答案 2 :(得分:2)

也许我错过了一些内容,但我看不到您的页面实际上回显了函数的任何文字。

答案 3 :(得分:1)

我为答案道歉。其他人似乎已经找到了这个问题(或者至少有一个),我只觉得这个问题过于密集而无法发表评论。

我建议改变你的风格,在数据库中有一个“读取标志”,而不是保持最后一行(或你的情况下的行数)并将其用作鉴别器。随着消息的增长,您不希望(大概)数百个结果通过AJAX调用进行转储。此外,除非您假设一旦它显示在页面上,用户就已经确认了它。 (一个例子是弹出最后一分钟的消息,用户同时点击一个链接 - 现在没有可见性。)

此外,如果您发现该网站获得了大量流量,那么在查看PUSH服务时可能是值得的(我发现这篇文章很快就用谷歌搜索goes on about it and its benefits

答案 4 :(得分:0)

现在你的php代码似乎没有发回任何回复。

获得变量$ q中的行数后,只需添加此行

即可
echo $q;

您可能还需要在ajax请求中添加dataType选项,以指定您希望返回类型为text的响应

$.ajax({
        url: 'jquery.php?query='+alertNumber,
        dataType : 'text',
        success: function(newAlert) {
            if (newAlert != alertNumber);
                alertNumber = newAlert;
                document.getElementById("wibble").innerHTML=alertNumber;
            }
     });

答案 5 :(得分:0)

var alertNumber = <?php echo $display['alertNumber']; ?>;
setTimeout(checkVariableValue, 2000);
function checkVariableValue() {
     $.ajax({
        url: 'jquery.php?query='.alertNumber,

在url属性上看到该行? 该行不在PHP脚本内...所以你必须使用javascript连接运算符(+)