Как передать массив значений из формы имеющей цикл в POST

129
28 января 2018, 03:30

Есть форма,внутри цикл, перебирающий поля из таблицы бд. При передаче методом post в обработчик, в $_POST попадает только последний товар таблицы. Как передать все товары из таблицы,которые перебирает foreach?

вот форма-

           <?php foreach ($about_skills as $key => $value): ?>
                <div class="col-md-6">
                     <!--    Context Classes  -->
                    <div class="panel panel-default">
                        <form action="/admin/about" method="post">
                            <div class="panel-heading">
                                <input type="text" name="skill_name" class="skill_name_input" value="<?php echo $key?>">
                            </div>
                            <div class="panel-body">
                                <div class="table-responsive">
                                    <table class="table table-striped table-bordered table-hover">                                  
                                        <tbody>
                                           <?php foreach($value as $about_skill => $this_skill): ?>

                                                    <tr>
                                                        <td>
                                                        <input type="text" name="about_name" class="about_name_input" value="<?php echo $this_skill['about_name']?>">
                                                        </td>
                                                        <td>
                                                            <input type="number" name="about_val" class="input_val" value="<?php echo $this_skill['about_val']?>"> 
                                                        </td>
                                                    </tr>

                                            <?php endforeach ; ?>
                                        </tbody>
                                    </table>
                                </div>
                                <input type="submit" name="skills_update" class="btn btn-warning about_change" value="upd">
                        </div>
                        </form>  
                    </div>
                    <!--  end  Context Classes  -->
                </div>
            <?php endforeach ; ?>

вот обработчик-

if (isset($_POST['skills_update'])) {
    var_dump($_POST);
}
Answer 1

Ты не можешь вывести значение по ключу, так как ты во время прохождения цикла отделил ключи от значений. Т.е. ты пишешь программе сделать отдельно about val => $this_skill

Короче, просто замени конструкцию

foreach($value as $about_skill => $this_skill)

на такую

foreach($value as $this_skill)
Answer 2

Короче решил задачу просто. В инпутах, которые что-то должны передавать в $_POST, в name добавил - [].

<input type="text" name="about_name[]" class="about_name_input" value="<?php echo $this_skill['about_name']?>">
READ ALSO
Небольшой вопрос по замыканиям

Небольшой вопрос по замыканиям

ЗдравствуйтеПодскажите, что и с себя представляют замыкания в php? То везде читаю, пишут что это одно и тоже что и анонимная функция, и стоит...

109
Cannot use object of type stdClass as array при вызове vkontakte-php-sdk [требует правки]

Cannot use object of type stdClass as array при вызове vkontakte-php-sdk [требует правки]

Ошибка в 417 строкеЧитал что вызов происходит не как объект, поэтому ошибка, как исправить? git: https://github

173
Как узнать где происходит обмен с roistat?

Как узнать где происходит обмен с roistat?

Есть сайт на 1с - Битрикс , сделан еще в кодировке win-1251

151