Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用具有相同名称的多个表单输入?_Php_Html_Forms_Query String_Html Input - Fatal编程技术网

Php 如何使用具有相同名称的多个表单输入?

Php 如何使用具有相同名称的多个表单输入?,php,html,forms,query-string,html-input,Php,Html,Forms,Query String,Html Input,我有几个复选框(我不知道有多少个)是从表单中的循环创建的 <form> <input type="checkbox" name="id" value="id"> <input type="checkbox" name="id" value="id"> ...//create in a loop <input type="checkbox" name="id" value="id"> </form> …//在循环中创建 我的问题是如

我有几个复选框(我不知道有多少个)是从表单中的循环创建的

<form>
<input type="checkbox" name="id" value="id">
<input type="checkbox" name="id" value="id">
...//create in a loop
<input type="checkbox" name="id" value="id">
</form>

…//在循环中创建
我的问题是如何读取它们,如果我使用
,它只读取最后一个复选框。

使用输入数组:

<input type="checkbox" name="id[]" value="id_a">
<input type="checkbox" name="id[]" value="id_b">
<input type="checkbox" name="id[]" value="id_c">
<!--                           ^^ this makes it an array -->
输出

id_a
id_b
id_c


旁注:这适用于
$\u POST
$\u GET
(不仅仅是
$\u REQUEST
)。一般来说,
$\u如果可能,应避免请求。

为复选框使用唯一id,例如

<form>
<input type="checkbox" name="id1" value="value1">
<input type="checkbox" name="id2" value="value2">
...//create in a loop
<input type="checkbox" name="id3" value="value3">
</form>

…//在循环中创建

有什么用?它们都得到了相同的值。无论如何,您可以使用名称数组。@Ehsan此示例不是您应该使用的方式。您必须单独验证每个ID,MyCode发布的示例是您应该使用的示例。这将起作用,但需要进行大量不必要的工作,因为您必须确保
名称
是唯一的,然后在服务器端,您必须循环数据数组并搜索关键字以确定它是否是值之一。@Ehsan,根据生成HTML的内容,您可以使用我提供的唯一标识符,例如,PHP中的
name=“id${I}”
。哇,我从来不知道您可以这样做!此方法是否适用于其他服务器端语言?是W3标准吗?@Stasel,是的,这是一个标准,与服务器端语言无关,因此所有现代服务器端语言都支持它。如果您发现一种语言不支持它,您可以简单地为它创建一个解析器,因为浏览器发送原始数据,如
id[]=a,id[]=b,id[]=c
,因此只要您有权访问原始post/get数据,就可以轻松地以任何语言读取。
<form>
<input type="checkbox" name="id1" value="value1">
<input type="checkbox" name="id2" value="value2">
...//create in a loop
<input type="checkbox" name="id3" value="value3">
</form>