我正在尝试在“videos.php”页面上完成以下操作(注意,这都在 PHP 回显中):
- 用户点击.star_' 。$pvid_ID 。'将视频评级提交到表单(这工作正常)
- 现在,我需要刷新显示当前视频评分的 div 以显示更新的视频评分,该评分存储在变量$avg_rating 中(在较早的 video.php 查询中从数据库中获取)。
- 要更新变量$avg_rating,我想将视频的 ID 发布到find_ratings2.php(该视频 ID 当前存储在“videos.php”中为$pvid_ID)
这是我在“videos.php”上的 jquery/ajax:
echo'
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$(".star_' . $pvid_ID . '").click(function() {
$.ajax({
type: "POST",
url: \'/dev/scripts/find_ratings2.php\',
data: { videoid: ' . $pvid_ID . ' },
success: function(data) {
$(".parent_video_' . $pvid_ID . '").load(\'testratings.php .vid_frame_id_' . $pvid_ID . '\').hide().fadeIn(2000);
}
});
});
});
</script>
';
然后,在 find_ratings2.php 我有:
<?php
require('config.php');
require('checklogin.php');
$video_id = $_POST['videoid'];
$mysqlicon3 = mysqli_connect($db_host, $db_username, $db_password, $db_name);
$find_rating = mysqli_query($mysqlicon3, "SELECT AVG(rating) AS avgRating FROM videoRatings WHERE videoID = '$video_id'");
while ($rating_row = mysqli_fetch_array($find_rating)) {
$avg_rating = $rating_row['avgRating'];
}
?>
当.star_' 。$pvid_ID 。'被点击,div 被正确刷新(.hide() 和 .fadeIn() 也在工作),但$avg_rating没有被更新。
作为参考,$avg_rating在“videos.php”上,如下所示:
echo'
<div class="parent_video_' . $pvid_ID . '">
<div class="comment_iconimg-stars vid_frame_id_' . $pvid_ID . '">
<div class="video-stars"><input class="imgstar star_' . $pvid_ID . '" type="image" src="';
if ($avg_rating > 0){echo '/dev/images/rate_video_icon_yellow.png';} else{echo '/dev/images/rate_video_icon.png';}
echo '" border="0" /></div>
</div>
</div>
</div>';