разместить и сохранить добавленные переключатели в базе данных?

#php #html #mysql

Вопрос:

У меня есть текстовые поля и групповые av-переключатели, подобные этому

 <div class="col">
    <input type="text" name="deliveryCompany[]" class="form-control">
</div>
<div class="col">
    <input type="text" name="deliveryContactPerson[]" class="form-control">
</div>

<!-- Delivery method -->
<fieldset class="form-group border p-2">
<div class="form-check form-check-inline">
    <input class="form-check-input" type="radio" name="deliveryMethod[]" value="Bid">
    <label class="form-check-label" for="deliveryMethod1">Bid</label>
</div>
<div class="form-check form-check-inline">
    <input class="form-check-input" type="radio" name="deliveryMethod[]" value="Mail">
    <label class="form-check-label" for="deliveryMethod2">Mail</label>
</div>
<div class="form-check form-check-inline">
    <input class="form-check-input" type="radio" name="deliveryMethod[]" value="retrieved">
    <label class="form-check-label" for="deliveryMethod3">retrieved</label>
</div>
 

Затем у меня есть кнопка, связанная с функцией jQuery, которая дублирует приведенный выше HTML-код, чтобы пользователь мог добавить больше адресов.

Я сохраняю его в базе данных вот так (у меня есть полосатый код)

 public function addDeliveryAddress()
    {
        for($i = 0; $i < count($_POST["deliveryContactPerson"]); $i  ) {

        'INSERT INTO address.....;

$deliveryParamValue = array(
            "Delivery",
            $_POST["deliveryContactPerson"][$i],
            $_POST["deliveryCompany"][$i],
            $_POST["deliveryMethod"][$i],
            );
        }
 }
 

У меня есть один адрес, все в порядке.

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

Должен ли я разместить несколько переключателей с одним и тем же name и получить больше, чем первый?

Думаю, мне нужно опубликовать deliveryMethod[] сообщение по-другому, но как?

Комментарии:

1. Вы отладили и проверили, что $_POST["deliveryMethod"] на самом деле содержится при отправке формы?

2. Есть ли что-то еще в вашей форме? Потому что, если вы просто скопируете точный код из вопроса, страница будет рассматривать все это как один большой переключатель (поскольку все они имеют одно и то же имя).

3. Я публикую имя в виде массива, таким образом, у меня может быть то же имя, но я также публикую остальное в виде массива, и я думаю, что в этом проблема.

4. Частично. Но, как говорит El_vanja, если вы не дадите своим копиям переключателей новые имена, вы даже не сможете выбрать отдельные параметры для каждого набора. Демо: jsfiddle.net/054m62z9 — попробуйте выбрать значение в первом наборе кнопок, а затем выберите значение во втором наборе, и посмотрите, что произойдет с вашим первым выбором. Это происходит потому, что все они имеют одно и то же имя. Поэтому проблема возникает еще до того, как вы ее подадите. Если, конечно, ваш код JavaScript не делает что-то, чтобы изменить эти имена, когда он копирует HTML?