2011-08-25 138 views
0

我有一个跨度标签的变量:

echo "<span class='headings_sub' id='msgcntDiv'>You have ".$numOfMessages." </span>"; 

我的脚本:

<script> 
    $(document).ready(function() { 
     var reload = function(){ 
     $("msgcntDiv").load("newMessageCnt.php"); 
    } 
    window.setInterval(function() { 
     $("#msgcntDiv").load(reload); 
    }, 10000); 
    }); 
</script> 

“newMessageCnt.php” 有句台词:

<?php 
include('header_application.php'); 
$pageValue = "dashboard"; 
$obj_clean->check_user(); 
echo $numOfMessages = $obj_clean->getUnopenedMessagesCount($_SESSION['user_id']);  
?> 
+0

我瘦必须用'负载(”。 ...');'而不是'.data(...)' – yvan

回答

0

看来你正在寻找为$ .load,而不是$ .data。此外,您可能需要调用它的间隔或重复的超时:

<script> 
$(document).ready(function() { 
    var reload = function(){ 
     $("msgcntDiv").load("newMessageCnt.php"); 
    } 
    window.setInterval(reload, 10000); 

}); 
</script> 
+0

你的意思是$(“msgcntDiv”)。load();) –

+0

是的,复制粘贴,并忘记编辑,因为我的手机响了。谢谢:) –

+0

在这种情况下,不会使用'setTimeout'递归安全吗?假设服务器出现问题,它会阻止继续提出请求。另请参阅:http://stackoverflow.com/questions/729921/settimeout-or-setinterval/731625#731625 – Geert

0
<script> 
    $(document).ready(function() { 
     refresh(); 
    }); 

    function refresh() 
    { 
     $.get('getUnopenedMessage.php', function (cnt) { 
      // $("#msgcntDiv").data('cnt', cnt); 
      $("#msgcntDiv span").text(cnt); 
      setTimeout(refresh(), 10000);    
     }); 
    } 
</script> 

和文件getUnopenedMessage.php,或多或少:

<?php 
//session_start(); 
$obj_clean = new yourMailClass('...'); 
echo $obj_clean->getUnopenedMessagesCount($_SESSION['user_id']) 
?> 
+0

可能是setTimeout(refresh,10000); ? –

+0

它确实调用我的.php文件,但是它不会更新我的变量

+0

会执行'$(“#msgcntDiv”).text(cnt);'诀窍? $ .data()是一个jquery函数,用于设置并获取“私有属性”,让你选择的元素。我想你有另一个jquery函数读取这个cnt数据,以显示新邮件的数量。 @Darhazer:是的!感谢名单!编辑! ^^ – roselan