@igor--ok

Как передать в POST несколько массивов чекбоксов в общем массиве?

Имею такой кусок формы в вёрстке (на самом деле форма сложнее, просто для понимания проблемы):
<form action="/getData" method="POST">
	<input type="checkbox" name="city[]" id="city1">
	<label for="city1">город 1</label>
	<input type="checkbox" name="city[]" id="city2">
	<label for="city2">город 2</label>
<hr>
	<input type="checkbox" name="color[]" id="color1">
	<label for="color1">город 1</label>
	<input type="checkbox" name="color[]" id="color2">
	<label for="color2">город 2</label>
</form>

При отправке такой формы контроллер (Laravel) принимает в $request два массива:
$request->city
$request->color

Форма будет динамически изменяться. Имена этих массивов тоже будут любые. Они (имена массивов) вообще мне не нужны.
Как в вёрстке указать имена, чтобы данные приходили в виде одного массива с постоянным именем filters, а в нём уже находились те массивы, которые есть на форме. Типа такой структуры:
filters[
city['0'=>'city1', '1'=>'city2'],
color['0'=>'color1', '1'=>'color2']
]
Мне нужно циклом перебрать массив filters и в каждой итерации циклом перебрать элементы вложенных массивов.

Или, если невозможно в вёрстке создать такую структуру, как в контроллере PHP (Laravel) перебрать $request и найти в нём все массивы.
Я пробовал так, не работает:
$arrCount = 0;
        foreach ($request as $value) {
            if(is_array($value)){
               $arrCount++; 
            }
        }
dd($arrCount);
  • Вопрос задан
  • 317 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
<input type="checkbox" name="filters[city][]" value="city1">
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы