TLDR
Я хочу, чтобы мой скрипт ниже возвращал <input id
и value
строки таблицы, в которой была нажата кнопка. Прямо сейчас он всегда возвращает информацию только из первой строки, независимо от того, в какой строке была кнопка.
Я думаю, что то, что я хочу сделать, простое, и я думаю, что я довольно близок к этому. Но для меня это всего лишь процесс обучения, поэтому возможно вероятно, что я совершаю ошибку новичка.
Я строю корзину. У меня есть строки таблицы, которые построены в цикле foreach. Основная суть такова (с использованием лезвия):
<?php $i = 0; ?>
@foreach($cart as $c)
<tr class="row-item">
<td>{{ $c['name'] }}</td>
<td>{{ $c['price'] }}</td>
<td><input type="text" class="quantity" id="{{ $c['rowid'] }}" value="{{ $c['qty'] }}"></td>
<td><button class="btn-remove" id="remove{{ $i }}" name="removeItem"></button></td>
</tr>
<?php $i++ ?>
@endforeach
Все строки, созданные в этом цикле, находятся внутри формы. У меня уже есть кнопка отправки для этой формы (вне цикла) для обновления количества.
Что я хочу сделать в конце, так это заставить кнопку "удалить" строки таблицы установить поле количества этой конкретной строки на ноль и отправить форму (с помощью существующей кнопки отправки формы), тем самым "удаление" товара из корзины. Это уже можно сделать вручную, установив поле количества на ноль, я просто думаю, что должна быть и кнопка удаления, как этого ожидает большинство людей.
Что я хочу сделать в качестве первого шага, так это вернуть <input id
и value
строки таблицы, в которой находится нажатая кнопка.
Мой сценарий выглядит следующим образом:
$(document).ready(function() {
$(".row-item").each(function(i) {
var fieldValue = $(".quantity").val();
var fieldId = $(".quantity").attr('id');
$("#remove" + i).click(function(e) {
console.log(fieldValue, fieldId);
e.preventDefault();
});
});
});
Это работает... вроде. Независимо от того, какую кнопку удаления строки я нажимаю, консоль отображает информацию из первого .row-item
.
4 2e9f9685813dee35a13376eccb21431b
Замечательно. Это в основном то, что я после. Я могу разобраться с информацией позже, мне просто нужно сначала получить соответствующую информацию :)
Но если я нажму кнопку удаления в другой строке, я получу то же самое. Очевидно, моя итерация работает не так, как хотелось бы.
Мне пришлось жестко запрограммировать некоторые переменные в скрипте
ИЗМЕНИТЬ
Хорошо, этот ответ работает, поскольку я могу получить все различные данные в консоли. Это прогресс! Но я еще не уверен, как использовать это с моими кнопками "удалить"...