我有一个网页,列出了MYSQL数据库中的许多公司,该列表只显示了该公司的名称。当用户点击公司名称时,jquery accordion滑块会显示有关该公司的其他信息。
当点击公司名称时,它还会向php脚本发送一个请求,以记录某人已查看该公司的详细信息。
我的问题
我想将每条记录的ID发送到php脚本。
我通过在while循环中包含手风琴jquery代码来实现这一点,该循环读取mysql查询的输出,但它会生成许多不必要的源代码(即列出的每个公司)。
我需要在while语句之外包含jquery手风琴代码。
当它在while循环之外时,如何将每个数据库记录的id(即公司名称)传递给jquery代码中的$ .post?
Accordion Jquery代码
$(document).ready(function() { $('div.listing> div').hide(); $('div.listing> h4').click(function() {
$.post("/record.php", { id: "<?php echo $LM_row02[id]; ?>" } )
var $nextDiv = $(this).next();
var $visibleSiblings = $nextDiv.siblings('div:visible');
if ($visibleSiblings.length ) {
$visibleSiblings.slideUp('fast', function() {
$nextDiv.slideToggle('fast');
});
} else {
$nextDiv.slideToggle('fast');
} }); });
任何想法最受欢迎。
答案 0 :(得分:1)
当您创建HTML时(我假设您也在循环中执行此操作),将ID为值的data-*
属性添加到元素中,并在单击元素时使用jQuery读取该值。
E.g。生成的HTML将如下所示:
<h4 data-id="123">Some title</h4>
和你的JavaScript:
$('div.listing > h4').click(function() {
$.post("/record.php", { id: $(this).attr('data-id') }, function() {
// ...
});
});
答案 1 :(得分:1)
在html中创建h4元素时,添加html5数据属性,如
<h4 data-companyid="<?php echo $LM_row02[id]; ?>">Company Name</h4>
然后在你的ajax调用中使用该companyid,如
$.post("/record.php", { id: $(this).data('companyid') } );