gpt4 book ai didi

php - 将 jquery 函数链接到 PHP 查询结果

转载 作者:行者123 更新时间:2023-12-01 03:52:33 24 4
gpt4 key购买 nike

我正在使用 PHP 检索视频列表。我正在使用 jquery 在叠加​​层中显示视频。我一切正常,但问题是实现方法对我来说似乎有点暴力,我正在寻找一种方法来删除冗余代码。

基本上,我从数据库中获取视频列表,并使用 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 函数?

我知道这是一个非常复杂的问题。预先感谢任何想要解决此问题的人。

最佳答案

首先,设置 HTML5 DOCTYPE,以便您可以利用 custom data attributes :

<!DOCTYPE HTML>

然后让 PHP 填充每个 anchor 的数据属性:

<a class="like-btn" id="like<?=$video['fileID']?>" data-voter="<?php echo (isset($_SESSION['user_id']) ? $_SESSION['user_id'] : '');" data-poster="<?=$video['userID']?>" data-class="<?=$_SESSION['class']?>" data-lesson="<?=$_SESSION['lesson']?>" data-file="<?=$video['fileID']?>"> ... </a>

然后使用单个 JQuery 点击处理程序:

$('a.like-btn').click(function(){
$.ajax({
type:"POST",
url:'/ajax/likeFile.php',
data:"voter=" + $(this).data('voter')
+ "&poster=" + $(this).data('poster')
+ "&classID=" + $(this).data('class')
+ "&lessonID=" + $(this).data('lesson')
+ "&id=" + $(this).data('file')
+ "&type=like",
success: function(data) {
var $response=$(data);
var votes = $response.filter('#voteCount').text();
$('#fileVotes').text(votes);
$(this).attr('src', '/images/upvoteDisabled.png');
//$('#unlike').attr('src', '/images/downvote.png'); // fix in your DOM
}
});
});

关于php - 将 jquery 函数链接到 PHP 查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6796406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com