如何链接表单中的多个input
元素,以便服务器知道两个值是否相关?
假设我们在一个页面上为多个人设置名字和名字的单独字段:
<input name="firstNames" value="John">
<input name="lastNames" value="Smith">
...
<input name="firstNames" value="Jane">
<input name="lastNames" value="Doe">
当POST它时,服务器最终会有以下数据:
firstNames = ["John", "Jane"]
lastNames = ["Smith", "Doe"]
因此我们可以通过索引确定相应的名称:
person = firstNames[i] + lastNames[i]
有没有比依赖订单更好的方法? (这甚至可靠吗?)
答案 0 :(得分:0)
编辑:这是特定于语言的
进一步搜索后,某些语言(ASP)允许您将数据作为CSV字符串获取。因此,您需要在问题中添加更多上下文。但是,数组方法仍适用于所有语言。
您不能依赖PHP中的顺序。如果两个HTML表单元素具有相同的名称,则最后一个将覆盖其他所有元素(至少在PHP中)。
只需使用数组。
<input name="firstNames[0]" value="John">
<input name="lastNames[0]" value="Smith">
...
<input name="firstNames[99]" value="Jane">
<input name="lastNames[99]" value="Doe">
您也可以使用空的[]
空括号。
修改强>
复制粘贴下面的代码以查看PHP中的行为。
失败的选民:我真的很想知道这将不的情况(用不同的语言)
<html>
<head>
</head>
<body>
<form action='test.php' method='post'>
<input name="firstNames" value="John">
<input name="lastNames" value="Smith">
<input name="firstNames" value="Jane">
<input name="lastNames" value="Doe">
<input type='submit' value='Go'>
</form>
</body>
</html>
<?php
if (!empty($_POST)) {
var_dump($_POST);
}