微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP-Ajax在while循环中仅获取数据的第一项

为什么我的Ajax在while循环中只能获取第一项数据?

示例:首先添加到愿望清单中,其中第一个商品的商品ID = 64,当我添加一个商品时,商品ID始终为64.

我的代码

<a id='addtowishlist' class='link' href='#' data-data='".$rows['p_id']."'>Add to wishlist</a>
<script type="text/javascript">
$(document).ready(function(){
        $("#addtowishlist").live('click', function(evt) {
        var link_data = $('.link').data('data');
        $.ajax({
            type: "POST",
            url: 'addtowishlist.PHP',
            data: ({product_id: link_data}),
            success: function(data) {
                alert(data);
            }   
        });   
    });  
});
</script>

解决方法:

ID必须是唯一的.否则,请使用类.如果您对ID使用相同的名称,则仅返回第一个匹配的数据.尝试以下代码

这应该定义为一个类(删除id属性):

<a class='addtowishlist link' href='#' data-data='".$rows['p_id']."'>Add to wishlist</a>

和这个 :

<script type="text/javascript">
$(document).ready(function(){
    // use class selector instead of ID
    $(".addtowishlist").live('click', function(evt) {
       // take only current clicked data element
       var link_data = $(this).data('data');
       $.ajax({
          type: "POST",
          url: 'addtowishlist.PHP',
          data: ({product_id: link_data}),
          success: function(data) {
            alert(data);
          }   
       });   
    });  
});
</script>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐