2014-10-29 16 views
0

請幫我找出爲什麼只有第一行插入數據庫表時單擊增量和十二按鈕。 我希望數據庫立即更新每次點擊的每個輸入,但只有第一項數據插入到表中。即使當我點擊另一個輸入字段按鈕。只有第一行可以返回AJAX調用

下面的代碼: ...

 <button class="btn btn-danger minus" name="item_1"><span class="glyphicon glyphicon-minus"></span></button> 
     <input class="text-center" type="number" name="item_1" id="item_1" value="0" /> 
     <button class="btn btn-success plus" name="item_1"><span class="glyphicon glyphicon-plus"></span></button> 
... 

     <button class="btn btn-danger minus" name="item_2"><span class="glyphicon glyphicon-minus"></span></button> 
     <input class="text-center" type="number" name="item_2" id="item_2" value="0" /> 
     <button class="btn btn-success plus" name="item_2"><span class="glyphicon glyphicon-plus"></span></button> 

和jQuery,太:

<script> 
    jQuery(document).ready(function(){ 
    $('.plus').click(function(e){ 
     e.preventDefault(); 
     var id = $(this).attr('name'); 
     var currentVal = parseInt($('input[id='+id+']').val()); 
     if (!isNaN(currentVal)) { 
      var newVal = $('input[id='+id+']').val(currentVal + 1); 
     } else { 
      var newVal = $('input[id='+id+']').val(0); 
     } 
    }); 
    $(".minus").click(function(e) { 
     e.preventDefault(); 
     id = $(this).attr('name'); 
     var currentVal = parseInt($('input[id='+id+']').val()); 
     if (!isNaN(currentVal) && currentVal > 0) { 
      var newVal = $('input[id='+id+']').val(currentVal - 1); 
     } else { 
      var newVal = $('input[id='+id+']').val(0); 
     } 
    }); 

$('button').click(function(){ 
var id = $('input').attr('id'); 
var newVal = $('input[id='+id+']').val(); 
$.ajax({ 
      type: 'POST', 
      url: "update.php?pid="+id+"&qty="+newVal+"&uid="+id, 
success: function() { 
    $button.parent().find("input").val(newVal); 
    } 
}); 
});  
}); 
</script> 
+0

我明白了!對於那些面臨這些問題的人:應該將$(this).attr('name')賦值給「id」變量,而不是$('input')。attr('id')。 – Alex 2014-10-29 10:25:17

回答

0

如果有人遇到同樣的問題,這裏的解決方案: 變化VAR ID = $( '輸入')ATTR( 'ID')。var id = $(this).attr('name');

因爲第一個從輸入字段獲取id,而正確的一個從點擊按鈕獲取。