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