2010-04-22 105 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,並且只返回比這個更新的帖子。