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_aid_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>