javascript - 在 AJAX 中使用 PHP 变量

标签 javascript php jquery ajax

我试图在“videos.php”页面上完成以下操作(注意,这全部在 PHP echo 内):

  1. 用户点击.star_'。 $pvid_ID 。 ' 将视频评级提交到表单(工作正常)
  2. 现在,我需要刷新显示当前视频分级的 div 以显示更新后的视频分级,该分级存储在变量 $avg_ rating 中(在之前的视频查询中从数据库中获取) .php)。
  3. 要更新变量 $avg_ rating,我想将视频 ID 发布到 find_atings2.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>';

最佳答案

除了 @MatRt 指出的从 php 回显 html/js 之外,您的代码中还发现了多个问题。还有一个问题,为什么 $avg_Rating 变量没有更新,因为 $avg_Rating 变量采用其初始值,因为页面加载不是来自 Ajax 请求。您需要从 javascript 进行类似的更新。

if(data > 0)
{ 
    $("video-stars input.imgstar").attr('src', '/dev/images/rate_video_icon_yellow.png');   
}
else
{
    $("video-stars input.imgstar").attr('src','/dev/images//dev/images/rate_video_icon.png');   
}  

最后还回显 find_ ratings2.php 中的 $avg_ rating 。

关于javascript - 在 AJAX 中使用 PHP 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19804273/

相关文章:

javascript - 用 React 调用 API 的最佳实践是什么

javascript - 在 ASP.NET 中离开页面之前保存数据

javascript - 如何在 Vue 中删除谷歌地图标记?

php - 国际化白标 PHP 代码的最佳实践

php - Laravel 规则只允许字母数字和 -(连字符)

javascript - 正在加载不同于 <img> 预加载的所有背景图像

javascript - 单击父复选框然后打开父子列表时如何设置下拉菜单?

javascript - Knex 返回 DATETIME 字段,应用我的机器时区的偏移量

javascript - 使用ajax请求下载文件

jquery - 使用 jQuery 添加发光的底部边框