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
。