只有第一行可以通过AJAX调用返回

时间:2014-10-29 09:25:45

标签: jquery mysql ajax

请帮助我找出为什么在点击inc和dec按钮时只有第一行插入数据库表。 我希望数据库在每次点击时立即更新每个输入,但只有第一项数据插入到表中。即使我点击另一个输入字段按钮。

这是代码:     ...

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

1 个答案:

答案 0 :(得分:0)

如果有人遇到同样的问题,请点击以下解决方案:     将 var id = $(&#39;输入&#39;)。attr(&#39; id&#39;); 更改为      var id = $(this).attr(&#39; name&#39;);

因为第一个从输入字段获取id,而正确的一个从单击按钮获取它。