@bobongida97

Как отправить любое количество input в обработчик?

Всем привет, подскажите пожалуйста как правильно и красиво организовать такую конструкцию:

Есть форма, в ней уже есть заданное количество полей:
<textarea name="recipe_step_text_1"></textarea>
<textarea name="recipe_step_text_2"></textarea>
<textarea name="recipe_step_text_3"></textarea>

К ним по кнопке можно еще добавлять, т.е. соответственно будет name="recipe_step_text_4", name="recipe_step_text_5" и так далее

В этом же файле в обработчике из полей забираются данные так:
$newStepRow = array(
		  array(
			  $textKey => $_POST['recipe_step_text_1']
		  ),
		  array(
			  $textKey => $_POST['recipe_step_text_2']
		  ),
	  );


Можно ли сделать так, чтобы в обработчик поступало ровно такое количество полей, которое будет сгенерировано в форме? Чтобы не дублировать вот так массивы вручную.

Я полагаю, что можно сделать через циклы, с увеличением какого-нибудь $i на единицу, но сейчас к сожалению теории не хватает, поэтому прошу помощи, в будущем подтяну.
  • Вопрос задан
  • 220 просмотров
Решения вопроса 1
AlexMaxTM
@AlexMaxTM
Как один из вариантов, в html
<textarea name="recipe_step_text[]"></textarea>
<textarea name="recipe_step_text[]"></textarea>
<textarea name="recipe_step_text[]"></textarea>

в PHP будет сразу весь массив.
$newStepRow = $_POST['recipe_step_text'];
foreach ($newStepRow as $newStepRow) {
echo "Получили значение:" . $newStepRow . "<br />\n";
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sabramovskikh
@sabramovskikh
name лучше задавать как recipe_step_text[]
Тогда вам придет сразу массив $_POST['recipe_step_text'] со всеми значениями. Его можно foreach обработать
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы