2013-07-28 162 views
0

我正在爲某人的項目工作。目前,我正在構建一個包含2個div的頁面,一個位於左側的YouTube視頻和一個右側的評論框。它看起來很像Facebook的功能。通過在textarea中輸入評論並按下'評論'按鈕,登錄的用戶也可以評論視頻。然後頁面將刷新,評論將在評論框中顯示。jQuery刷新div

然而這是問題;當頁面刷新時,視頻停止播放。有沒有辦法刷新評論框的div?

我知道我的代碼不是很整潔,但這只是一個概念證明,所以不要擔心。

代碼來獲取視頻

echo "<div id='video' style='float:left; margin-right: 5px;'>"; 
$video_id = $_GET['i']; 
$getinfo = new Music(); 
$getinfo = $getinfo->getMusicInfo($video_id); 
if($getinfo){ 
?> 
<object width="425" height="350" data="http://www.youtube.com/v/<?php echo $getinfo['link']; ?>" type="application/x-shockwave-flash"><param name="src" value="http://www.youtube.com/v/<?php echo $getinfo['link'];?>" /></object></div> 

這是獲得視頻上的評論。

<div id='comment_area' style='border: 1px solid green; height: 300px;'> 
     <div id='comments' style='border: 1px solid blue; height:180px; overflow-y: scroll;'> 
     <?php 
     $getcomments = new Music(); 
     $getcomments = $getcomments->getMusicComments($video_id); 
     if($getcomments){ 
      foreach($getcomments as $comment){ 
       echo "<br /><a href='#'>" . $comment['stagename'] . "</a><br />" . $comment['comment'] . "<br /><br />"; 
      } 
     } 
     else {echo "<br />No comments yet. Be the first to comment<br />";} ;?> 
     <span id='response'></span> 
     <input type='hidden' id='music_id' value='<?php echo $video_id;?>' /> 
     <input type='hidden' id='user' value='<?php echo $_SESSION['user'];?>' /></div><br /> 
     <textarea cols=50 rows=7 id='comment_box' placeholder='Comment on this'></textarea><br /> 
     <input type='submit' onclick="addComment()" value='add comment'> 
    </div> 

那麼有沒有辦法使用jQuery/JavaScript刷新第二個div?

+0

使用AJAX在固定時間間隔加載內容... –

回答

1

您可以使用jQuery的load()功能,並指定要加載的內容:

$('#comment_area').load('mypage.php #comment_area'); 

當然,你還需要提交通過AJAX評論爲好。因此,另一種選擇是使用ajax提交評論,然後發送確認消息,並使用javascript將評論追加到評論列表中。

作爲一個方面的說明,我沒有看到你的編碼你的評論,以防止XSS。不要忘記這樣做。

+0

好了,我將不得不反正更改我的代碼?而不是使用OOP,我必須使用ajax/jquery? – user2285451

+0

Ajax和OO服務器端代碼並​​不相互排斥。但是,如果你希望頁面無需刷新就可以從服務器提交/檢索數據,那麼ajax就是最好的選擇。 –

0

完成此操作的最佳方法是使用jquery的$ .ajax方法。這將允許您發佈評論並閱讀/更新評論,而無需重新加載頁面。因爲它看起來像在php中已經有了一個「getMusicComments」方法,用ajax調用該方法來檢索註釋應該相當簡單。

閱讀上的jQuery $就here

+0

但問題是,getMusicComments是一個PHP函數。 Music類的一種方法是精確的。我不認爲我可以從ajax調用PHP方法? – user2285451