0

我正在为某人做一个项目。目前我正在构建一个包含 2 个 div 的页面,左侧是一个 youtube 视频,右侧是一个评论框。它看起来很像 facebook 的功能。登录的用户还可以通过在文本区域内输入评论并按下“评论”按钮来评论视频。然后页面将刷新,评论将显示在评论框中。

然而,这是问题所在;当页面刷新时,视频停止播放。有没有办法用评论框只刷新 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?

4

2 回答 2

1

您可以使用 jquery 的load()函数并指定要加载的内容:

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

当然,您还需要通过 ajax 提交评论。所以另一种选择是使用 ajax 提交评论,然后发回确认它有效,然后使用 javascript 将评论附加到评论列表中。

作为旁注,我看不到您在哪里对评论进行编码以防止 XSS。不要忘记这样做。

于 2013-07-28T18:08:31.607 回答
0

最好的方法是使用 jquery 的 $.ajax 方法。这将允许您发布评论并阅读/更新评论,而无需重新加载页面。因为看起来您的 php 中已经有一个“getMusicComments”方法,所以使用 ajax 调用该方法来检索评论应该相当简单。

在此处阅读 jquery $.ajax

于 2013-07-28T18:10:26.690 回答