Как добавить данные из input в массив и записать в БД одной кнопкой?
Нужно добавить из скрытых инпутов массив в базу данных.
<form class="card-popup-wrapp cart__form form-send" method="POST" action="../func">
<input type="hidden" name="name[]" value="${name}">
<input class="js-cart-input-quantity" type="hidden" name="quantity[]" value="${quantity}">
<input class="js-cart-input-price" type="hidden" name="price[]" value="${price * quantity}">
<button class="btn-popup form__btn but" id="but" type="submit"> GO</button>
</form>
Мой PHP файл:
for ($i = 0; $i < count($names); ++$i) {
$name = $names[$i];
$price = $prices[$i];
$quantity = $quantities[$i];
mysqli_query($connect, "INSERT INTO `zakaz` (`id`, `name`, `price`, `quantity') VALUES (NULL, '$names', '$prices', '$quantities')");
};
header('Location: /index');
Добавляется последний элемент всё время. Как быть?
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Надо поставить всем инпутам квадратные скобки в имена, т.е.
name="name[]"
name="quantity[]"
name="price[]"
На бэке будет не $name, $price, $quantity, а $names, $prices, $quantities
Дальше делаем цикл по любому из массивов
for ($i = 0; $i < count($names); ++$i) {
$name = $names[$i];
$price = $prices[$i];
$quantity = $quantities[$i];
// ТУТ INSERT В БД
}