简体   繁体   English

Ajax只在while循环中获取数据的第一项

[英]Ajax get data only first item in while loop

Why my ajax can get data only first item in while loop? 为什么我的ajax只能在while循环中获取数据的第一项?

Example : First add to wishlist with first item in loop product id = 64, When I add another item product id is always 64. 示例:首先使用循环产品id = 64中的第一项添加到wishlist,当我添加另一项时,产品ID始终为64。

My Code : 我的代码:

<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 must be unique . ID必须是唯一的 Otherwise use class instead. 否则请使用class If you're using the same name for ID , only first matched data returned. 如果您对ID使用相同的名称,则仅返回第一个匹配的数据。 Try following code: 请尝试以下代码:

This should be defined as a class (remove id attribute) : 这应该被定义为一个类(删除id属性)

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

And this : 还有这个 :

<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>

use class instead of id in your html as 在你的html中使用class而不是id

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

and change the syntax of ajax as well 并改变ajax的语法

<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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM