关联HTML表单字段

时间:2011-04-04 05:56:45

标签: html forms

如何链接表单中的多个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]

有没有比依赖订单更好的方法? (这甚至可靠吗?)

1 个答案:

答案 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);
}