HTML Element Array,name =“something []”或name =“something”?

时间:2011-01-14 07:35:18

标签: php html

我在这个网站上看到了一些东西: 处理JavaScript和PHP中的HTML表单元素数组 http://www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=343

它说关于将数组放在name属性中以及如何获取输入集合的值。 例如name="education[]"

但据我所知,HTML输入元素由name准备好阵列。 在客户端(GetElementsByName)或服务器端(PHP中的$_POST或ASP.NET中的Request.Form) 例如:name="education",那么[]与<{1}}的不同之处是什么?

3 个答案:

答案 0 :(得分:47)

PHP使用方括号语法将表单输入转换为数组,因此当您使用name="education[]"时,您将在执行此操作时获得数组:

$educationValues = $_POST['education']; // Returns an array
print_r($educationValues); // Shows you all the values in the array

例如:

<p><label>Please enter your most recent education<br>
    <input type="text" name="education[]">
</p>
<p><label>Please enter any previous education<br>
    <input type="text" name="education[]">
</p>
<p><label>Please enter any previous education<br>
    <input type="text" name="education[]">
</p>

将在$_POST['education']数组中为您提供所有输入的值。

在JavaScript中,通过id ...

获取元素效率更高
document.getElementById("education1");

id不必与名称匹配:

<p><label>Please enter your most recent education<br>
   <input type="text" name="education[]" id="education1">
</p>

答案 1 :(得分:14)

如果您有复选框,则可以传递一组已检查的值。

<input type="checkbox" name="fruits[]" value="orange"/>
<input type="checkbox" name="fruits[]" value="apple"/>
<input type="checkbox" name="fruits[]" value="banana"/>

还有多个选择下拉列表

<select name="fruits[]" multiple>
    <option>apple</option>
    <option>orange</option>
    <option>pear</option>
</select>

答案 2 :(得分:10)

它与众不同。 如果您发布此表单:

<input type="text" name="education[]" value="1">
<input type="text" name="education[]" value="2">
<input type="text" name="education[]" value="3">

您将在PHP中获得一个数组,在此示例中,您将获得$_POST['education'] = [1, 2, 3]

如果您在没有[]的情况下发布此表单:

<input type="text" name="education" value="1">
<input type="text" name="education" value="2">
<input type="text" name="education" value="3">

您将获得最后一个值,在这里您将获得$_POST['education'] = 3