Как мне разобрать неизвестное количество входов с помощью PHP? - PullRequest
0 голосов
/ 18 февраля 2012

Допустим, у меня есть что-то вроде этого: http://gyazo.com/642987562175afc6d11a962762327744.png?1329570534

По сути, пользователь заполняет эту форму, и, если есть больше людей, нажатие на вкладку на последней форме добавит еще один ввод. Я считаю, что Quizlet делает нечто подобное.

Как бы я проанализировал все эти входные данные с PHP? Я, очевидно, не знаю, сколько будет входных данных.

Приветствия

Ответы [ 3 ]

3 голосов
/ 18 февраля 2012

Просто создайте каждый (похожий) элемент формы (в html) как запись массива (в php). Смотри http://php.net/faq.html.php#faq.html.arrays Вы можете просто перебрать элементы, затем

foreach ($_POST['MyArray'] as $element) { echo $element; }

Просто чтобы завершить: если вы нажмете на ссылку выше, то увидите, как должны выглядеть ваши элементы формы.

<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />
0 голосов
/ 18 февраля 2012

Убедитесь, что каждый вход имеет уникальное имя, увеличивая его для каждого дополнительного поля, например:

<input type="text" name="field-1" />
<input type="text" name="field-2" />
<input type="text" name="field-3" />

Затем, когда вы отправляете его в свой php-скрипт, у вас есть доступ ко всем полям формы в $ _GETили массивы $ _POST, в зависимости от метода отправки формы.

Вы можете выполнить простой цикл while для перебора $ _GET ['field-1'], $ _GET ['field-2'], $ _GET['field-n'].

Имеет смысл?

0 голосов
/ 18 февраля 2012

Списки аргументов переменной длины

PHP поддерживает списки аргументов переменной длины в пользовательских функциях. Это действительно довольно просто, используя функции func_num_args (), func_get_arg () и func_get_args ().

Никакого специального синтаксиса не требуется, и списки аргументов могут по-прежнему явно предоставляться с определениями функций и будут вести себя как обычно.

http://php.net/manual/en/functions.arguments.php:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...