如何使用PHP解析未知数量的输入?
问题描述:
可以说我有这样的事情: http://gyazo.com/642987562175afc6d11a962762327744.png?1329570534如何使用PHP解析未知数量的输入?
基本上,用户填写此表,如果有更多的人,按最后一个表单标签上会增加一个输入。我相信Quizlet做了类似的事情。
我将如何用PHP解析所有这些输入?我显然不知道会有多少输入。
干杯
答
只需创建的形式(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[]" />
答
可变长度参数列表
PHP具有用于在用户定义的函数的可变长度参数列表支持。这真的很简单,使用func_num_args(),func_get_arg()和func_get_args()函数。
不需要特殊的语法,并且参数列表仍可以用函数定义明确提供,并且将像正常一样运行。
答
确保每个输入通过递增每增加一个字段都有一个唯一的名称,例如:
<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']。
有意义吗?
很遗憾,非常感谢,这比我预期的要容易得多 – chintanparikh 2012-02-18 13:35:43
值得注意的是,当你为输入编写HTML时,你需要指定' itsmequinn 2012-02-18 13:35:51
@itsmequinn那在php.net上提到(见链接)。我已经将它添加到案例的答案中,php.net最终不再可用。 – KingCrunch 2012-02-18 14:05:38