2010-04-22 102 views
0

我有一个页面,用户可以使“posts”与Facebook类似,我想弄清楚如何让它运行php循环,每10分钟运行一次,以便该人员能够看到新帖子。每当一篇文章被添加到数据库中,然后页面被刷新,我想更多地做到“脸谱”。使用jquery滑下等。下面是我现在up2。jQuery的刷新PHP循环?

function postdata() 
{ 
    $.ajax({ 
    type: "POST", 
    dataType: "text", 
    url: "makepost.php", 
    data: "post_text=" + $("#post_text").val(), 
    cache: false, 
    success: function(reply_text) 
    { 
     if (reply_text.indexOf("Successful") >= 0) 
     { 
      alert("Post Made"); 
      window.location = "index.php" 


     } 
     else 
     { 
      alert(reply_text); 
     } 
    } 
    }); 
} 

</script> 

    <div id="content"> 
<?php 

if (loggedin()) 
{ 

$ID = getID(); 
$query = "SELECT * FROM `posts`"; 
$result=mysql_query($query); 
$count=mysql_num_rows($result); 

$users = "SELECT `userID` FROM `users`"; 
$resultID=mysql_query($users); 


while ($row = mysql_fetch_array($result)) 
{ 

echo '<div class="posts">'; 

    echo $row['2']."<br /><br />";  

     echo '<div class="posts_bottom">'; 

      echo '<p class="name">'; 

      echo showuser($row['1'])."</p>"; 

      echo '<p class="rate">'; 

      echo '<input type="submit" value="+1"/></p>'; 

      echo '<p class="points">'; 

      echo showpoints($row['1'])."</p>"; 

     echo "</div>"; 

echo '</div>'; 

} 
echo 
'<div id="makepost"> 
    <br /><textarea rows="3" cols="25" id="post_text" ></textarea><br /> 
    <input type="submit" id="post_bttn" value="Post" onclick="postdata(); return false;"> 
</div>'; 

因为他们每次都进入一个新的div,我不知道要刷新什么?例如,如果它是一个div,我可以刷新,但这些正在创建,我不知道需要加载多少。

任何adivce?非常感谢:D

回答

0

很简单,你必须在java脚本中设置timmer以每10分钟执行一次函数。

setTimeout("updateMyFBLikeChat()",60000); 

不要忘记,这与发布数据时执行的功能不同。 更可以在w3schools.com

+1

'setTimeout(updateMyFBLikeChat,600000);'更好。 – 2010-04-22 13:51:46

+0

谢谢,但我不知道该功能应该做什么?喜欢什么我刷新等。 – Elliott 2010-04-22 13:54:38

+0

该功能应该获取您需要的页面的所有数据。像打开新页面一样,等等 – lfx 2010-04-22 14:28:40

0

您需要进行以下步骤获得基本的了解和休息,你可以阅读improvize ..

  1. 创建一个PHP文件(可名作为update.php)。
  2. 对帖子执行登录会话检查和查询数据库。

    $ query =“SELECT * FROM posts”; $ result = mysql_query($ query); ($ row = mysql_fetch_array($ result)){ .... }

  3. 使用echo语句返回完整的HTML。
  4. 在settimeout函数下使用AJAX调用此PHP文件,并使用所需的延迟。

    功能updatePageContent(){$ 阿贾克斯({ 类型: “POST”, 数据类型: “文本”, 网址: “update.php”, ... .... } $(身体)。在( '负荷',函数(){ 的setTimeout( “updatePageContent()”,60000); });

  5. 在此阿贾克斯的成功函数中调用,您可以更新您的DOM

    $(your-div).html(responseData);

但是,这只是一个让您开始的基本示例。 一旦你对这种方法感到满意,你可以修改你的脚本,将最新的帖子ID发送到update.php,并且只返回比这个更新的帖子。