簡體   English   中英

在AJAX中使用PHP變量

[英]Use PHP variable in AJAX

我正在嘗試在“ videos.php”頁面上完成以下操作(注意,這全部都在PHP echo中):

  1. 用戶點擊.star_'。 $ pvid_ID。 '會向表單提交視頻評分(此操作正常)
  2. 現在,我需要刷新顯示當前視頻收視率的div來顯示更新的視頻收視率,該更新存儲在變量$ avg_rating中 (從DBs中對videos.php的早期查詢中獲取)。
  3. 要更新變量$ avg_rating ,我想將視頻的ID發布到find_ratings2.php (該視頻ID當前以$ pvid_ID的形式存儲在“ videos.php”上)

這是我在“ 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。

關閉PHP結束標記並添加javascript代碼:

<script type="text/javascript" language="javascript">
$(document).ready(function() {

   var pvid = "<?php echo $pvid_ID; ?> ";

   $(".star_' + pvid + '").click(function() {
       $.ajax({
           type: "POST",
           url: \'/dev/scripts/find_ratings2.php\',
           data: { videoid: ' + pvid +  ' },
           success: function(data) {
               $(".parent_video_' + pvid +  '").load(\'testratings.php .vid_frame_id_' . + pvid +  '\').hide().fadeIn(2000);
            }
        });  });});                        
</script>
<?php some code ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM