我在这个网站上看到了一些东西: 处理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}}的不同之处是什么?
答案 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
。