2014-10-29 2 views
0

, пожалуйста, помогите мне выяснить, почему только вставки первой строки в таблице DB при нажатии кнопок inc и dec. Я хочу, чтобы БД обновлялось каждый вход на каждом клике, но только данные первого элемента вставляются в таблицу. Даже когда я нажимаю другие кнопки поля ввода.только первая строка может быть возвращена с вызовом 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

Я получил это сам !!! Для тех, кто сталкивается с такими проблемами: вместо $ ('input'). Attr ('id') вы должны назначить $ (this) .attr ('name') переменной "id". – Alex

ответ

0

Если кто-то встретил ту же проблему, вот решение: Изменить вар ID = $ ('вход') Attr ('ID'). до var id = $ (this) .attr ('name');

Потому что первый получает идентификатор из поля ввода, в то время как правильный получает его от нажатой кнопки.

Смежные вопросы