Есть форма,внутри цикл, перебирающий поля из таблицы бд. При передаче методом 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);
}
Ты не можешь вывести значение по ключу, так как ты во время прохождения цикла отделил ключи от значений. Т.е. ты пишешь программе сделать отдельно about val => $this_skill
Короче, просто замени конструкцию
foreach($value as $about_skill => $this_skill)
на такую
foreach($value as $this_skill)
Короче решил задачу просто. В инпутах, которые что-то должны передавать в $_POST, в name добавил - [].
<input type="text" name="about_name[]" class="about_name_input" value="<?php echo $this_skill['about_name']?>">
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости