Как исправить несколько форм с одинаковым именем? - PullRequest
1 голос
/ 11 апреля 2019

Я настраиваю новый сервис формы для людей, и форма должна получить до 4 входов с тем же именем. Форма имеет 2 двойных ввода, один для денег и другой для имени службы.

HTML

<input name='budget[]' id='' placeholder='Product or Service' type='text' class='form-control'>
<input name='budget_price[]' id='currency' placeholder='Value' type='number' class='form-control'>

<input name='budget[]' id='' placeholder='Product or Service' type='text' class='form-control'>
<input name='budget_price[]' id='currency' placeholder='Value' type='number' class='form-control'>

Как я могу сделать foreach, чтобы потом вставить его в БД?

1 Ответ

1 голос
/ 11 апреля 2019

Как указано в комментариях, вам нужно будет зациклить один массив и использовать ключ для доступа к записи из другого.

Попробуй:

<?php
$budget = $_POST['budget'];
$budgetPrice = $_POST['budget_price'];

foreach ($budget as $key => $entry) {
    $serviceName = $entry;
    $currency = $budgetPrice[$key];

    // insert $serviceName and $currency into DB
    // first iteration of loop is the first two inputs
}

Или, если вы хотите по-другому (или не можете выбрать, какой массив для цикла), вы можете использовать for loop:

<?php
$budget = $_POST['budget'];
$budgetPrice = $_POST['budget_price'];

$totalBudget = count($budget);

for ($i = 0; $i < $totalBudget; $i++) {
    $serviceName = $budget[$i];
    $currency = $budgetPrice[$i];

    // insert $serviceName and $currency into DB
    // first iteration of loop is the first two inputs
}

Я предположил, что логика отсутствия промежутка между номерами элементов в каждом массиве (например, count($budget) == count($budgetPrice) возвращает true) обрабатывается где-то заранее.

В соответствии с вашим последним комментарием, вам нужно проверить, является ли переменная пустой перед вставкой, например:

<?php
if (!empty($serviceName)) {
    // insert $serviceName
}

if (!empty($currency)) {
    // insert $currency
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...