Есть форма в которой цикл перебирает массив и записывает каждый товар в определенные поля(название,значение ...).
Дело в том,что при передаче в обработчик ,в $_POST попадает только последний товар. Как передать все товары ,которые перебирает foreach?
1. ronni10 - 27 Января, 2018 - 11:43:12 - перейти к сообщению
2. Строитель - 27 Января, 2018 - 12:36:21 - перейти к сообщению
ronni10, нужно перед циклом объявить новый массив, а в теле цикла сохранять в этот массив необходимые значения. После выхода из цикла в этом массиве будут доступны все необходимые элементы.
3. ronni10 - 27 Января, 2018 - 12:50:13 - перейти к сообщению
Строитель пишет:
ronni10, нужно перед циклом объявить новый массив, а в теле цикла сохранять в этот массив необходимые значения. После выхода из цикла в этом массиве будут доступны все необходимые элементы.
Потом в инпуте можно будет отправить массив?
4. Строитель - 27 Января, 2018 - 12:53:32 - перейти к сообщению
ronni10 пишет:
Да, но только в атрибуте name="" этого инпута нужно "указать", что предполагается отправка массива, добавив после названия пост-переменной квадратные скобки: name="var[]"
Потом в инпуте можно будет отправить массив?
5. ronni10 - 27 Января, 2018 - 12:55:18 - перейти к сообщению
Строитель пишет:
ronni10 пишет:
Да, но только в атрибуте name="" этого инпута нужно "указать", что предполагается отправка массива, добавив после названия пост-переменной квадратные скобки: name="var[]"Потом в инпуте можно будет отправить массив?
спасибо. ща попробую
(Добавление)
Строитель пишет:
ronni10 пишет:
Да, но только в атрибуте name="" этого инпута нужно "указать", что предполагается отправка массива, добавив после названия пост-переменной квадратные скобки: name="var[]"Потом в инпуте можно будет отправить массив?
все записывается в этот массив ,но когда распечатываю $_POST['var'] в обработчике вот что выдает
array(4) { [0]=> string(0) "" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" }
6. Строитель - 27 Января, 2018 - 13:49:25 - перейти к сообщению
ronni10, продолжая гадание на кофейной гуще, можно предполжить, что в атрибуте value="" у вас пусто. Массив, который вы получили в цикле, надо подставлять в этот атрибут.
7. ronni10 - 27 Января, 2018 - 14:01:46 - перейти к сообщению
Строитель пишет:
ronni10, продолжая гадание на кофейной гуще, можно предполжить, что в атрибуте value="" у вас пусто. Массив, который вы получили в цикле, надо подставлять в этот атрибут.
дело в том ,что внутри формы делая var_dump я убеждаюсь ,Что там не пусто ,а есть многомерные массивы....понимаю нужен пример кода
<?php $post_mass =[]; ?>
<?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>
<input type="hidden" name="post_mass" value="<?php $post_mass ;?>">
<?php $post_mass = $this_skill;?>
<?php var_dump($post_mass);?>
<?php endforeach ; ?>
if (isset($_POST['skills_update'])) {
var_dump($_POST['post_mass']);
}
8. Строитель - 27 Января, 2018 - 14:36:13 - перейти к сообщению
ronni10, попробуйте инпут записать вот таким образом, и посмотрите что придёт в массив $_POST после отправки формы:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <input type="hidden" name="post_mass[]" value="<?= $this_skill ?>" />