2013-07-28 161 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