将变量从while循环传递到jquery

时间:2012-05-11 10:38:59

标签: php jquery variables while-loop

我有一个网页,列出了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');
    }   }); });

任何想法最受欢迎。

2 个答案:

答案 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') } );