Как добавить данные из 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 В БД
}
→ Ссылка