使用PHP我正在檢索視頻列表。我正在使用jquery在疊加層中顯示視頻。我有一切工作,但問題是實施的方法似乎對我有點蠻力,我正在尋找一種方法來削減冗餘代碼。將jquery函數鏈接到PHP查詢結果
基本上我從數據庫中獲得視頻列表,並使用foreach循環將其輸出到屏幕。我用的ID的視頻,使像鏈接ID爲每個結果獨特:
<a id=like<?php echo $video['fileID'] ?>" ...
我接下來要jQuery的加入到循環的每個迭代。如果顯示其是通過對視頻,當前用戶等信息Ajax調用當前用戶的票的視頻,然後jQuery的AJAX調用函數和一個新的投票:
//upVote for a discussion
$('#like<?php echo $video['fileID'] ?>').click(function(){
$.ajax({
type:"POST",
url:'/ajax/likeFile.php',
data:"voter=" + <?php echo (isset($_SESSION['user_id']) ? $_SESSION['user_id'] : ''); ?>
+ "&poster=" + <?php echo $video['userID'] ?>
+ "&classID=" + <?php echo $_SESSION['class'] ?>
+ "&lessonID=" + <?php echo $_SESSION['lesson'] ?>
+ "&id=" + <?php echo $video['fileID'] ?>
+ "&type=like",
success: function(data) {
var $response=$(data);
var votes = $response.filter('#voteCount').text();
$('#fileVotes').text(votes);
$('#like').attr('src', '/images/upvoteDisabled.png');
$('#unlike').attr('src', '/images/downvote.png');
}
});
});
就像我說,這工作正常。問題是,我想減少重複jQuery的每個鏈接反覆。有沒有一種方法可以調用它,只是讓選中的項目通過它的當前循環迭代變量而不是爲每個鏈接創建一個jquery函數?
這是一個非常複雜的問題,我知道。預先感謝任何想解決這個問題的人。
我假設代碼輸出這隻出現一次在你的實際的PHP代碼,對不對?如果是這樣,通過製作某種JavaScript函數輸出代碼,除了極少量的帶寬之外,你實際上不會去拯救自己。 – Mike