使用jquery刷新包含php代码的div的问题

时间:2009-08-09 23:01:12

标签: php jquery

我已经阅读了有关如何执行此操作的3篇帖子,但由于某些原因它无法正常工作。

在页面index.php上,我有这个脚本:

<script type="text/javascript">

function update() {
  $.get("index.php", function(data) {
    $("#uploadcount").html(data);
    window.setTimeout(update, 5000);
  });
}

</script>

然后这个div,也在index.php

<div id=uploadcount>
<?
$result = mysql_query("SELECT * FROM mydb");
$num_rows = mysql_num_rows($result);
echo "<h1>$num_rows</h1><h2>rows</h2>";
?>
</div>

php显示行数很好,但它不会刷新数字 (我有最新的jquery构建包含在index.php的头部)

3 个答案:

答案 0 :(得分:1)

请尝试用双引号括住您的div ID:

<div id="uploadcount">

另外,将你的jQuery放在document.ready块中,并且对setTimeout的调用不应该在$ .get方法中:

<script type="text/javascript">
$(document).ready(function() {
    function update() {
      $.get("index.php", function(data) {
        $("#uploadcount").html(data);
      });
    }
    window.setTimeout(update, 5000);
});
</script>

如果您想有选择地从文档中检索某些内容,可以将$.load与选择器一起使用,例如:

$("#uploadcount").load("index.php #uploadcount");

http://docs.jquery.com/Ajax/load

仅适用于jQuery 1.2及更高版本。

答案 1 :(得分:1)

尝试将此用于更新功能

function update() {
    $("#uploadcount").load("index.php #uploadcount")
    window.setTimeout(update, 5000);
}

答案 2 :(得分:1)

找到了一个效果很好的解决方案

<script type="text/javascript">
$(document).ready(function() {
setInterval(function()
{
     $('#uploadcount').fadeOut("fast").load('uploadcount.php').fadeIn("slow");
}, 10000);

});
</script>


<div id="uploadcount">
<? include("uploadcount.php");?>
</div>

感谢所有人的帮助。