HTML元素数组,name =“something ”或name =“something”?

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

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

但据我所知,HTMLinput元素是按name排列的。 在客户端( GetElementsByName )或服务器端(PHP中的$_POST或ASP.NET中的Request.Form )例如: name="education" ,那么与[][]不同的是什么?

PHP使用方括号语法将表单input转换为数组,因此当您使用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']数组内的所有input值。

在JavaScript中,通过id获取元素更有效率…

 document.getElementById("education1"); 

该ID不必与名称匹配:

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

如果您有checkbox,您可以传递一组选中的值。

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

还有多个select下拉菜单

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

这不一样。 如果你发布这个表单:

 <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