jquery只提交第一个元素

问题描述:

我试图存储产品ID,但它只存储第一个元素。jquery只提交第一个元素

$(document).ready(function() { 
    $("#driver").live('click', function(event){ 
    var product = $("#product").val(); 
    $("#stage").load('add-exec.php', {"product":product}); 
    }); 
}); 

和这里的列表

<?php 

    $sql="SELECT * FROM products ORDER BY name ASC"; 
    $query=mysql_query($sql); 

    while ($row=mysql_fetch_array($query)) { 

?> 
<tr> 
    <td><?php echo $row['name'] ?></td> 
    <td><?php echo $row['description'] ?></td> 
    <td><?php echo $row['price'] ?>$</td> 
    <td> 
    <input type="hidden" id="product" value="<?php echo $row['id_product'] ;?>" /><br /> 
    <div id="stage"></div> 
    <input type="button" id="driver" value="Add" /> 
</tr> 
<?php 

    } 

?> 
+2

ID必须是唯一的。使用类代替多个元素 –

+0

我试过使用类没有为我工作@NorlihazmeyGhazali –

+0

@Erick jQuery将无法找到任何'style =“display:none;',这真的是一个坏建议 – Shehary

就像说ID必须是唯一的。用类代替多个元素。切换到该解决方案:

// change id into class 
<input type="hidden" class="product" value="<?php echo $row['id_product'] ;?>" />  <br /> 
<div id="stage"></div> 
// i added btnAdd class 
<input type="button" class="driver btnAdd" value="Add" /> 

和JS应该是:

$(document).ready(function() { 
    // attach click event on btnAdd class 
    $(".btnAdd").live('click', function(event){ 
     // get product value using selector .prevAll(must be siblings) 
     // and filter by it class 
     var product = $(this).prevAll('.product').val(); 
     $("#stage").load('add-exec.php', {"product":product}); 
    }); 
}); 
+0

很高兴听到这一点,并欢迎你的队友。 –