【问题标题】:POST an array with similar names and similar values发布具有相似名称和相似值的数组
【发布时间】:2026-02-01 17:05:02
【问题描述】:

我发布这个是因为我真的不知道我可以搜索什么。请注意,我有基础知识,还在学习;另外,我有时可能会使用错误的术语,对此感到抱歉。

我正在通过 PHP/MySQL、HTML、Bootstrap 和 JQuery 设置 Web 应用程序。

我需要将一个数组发布到我的数据库中。问题是,这个数组可能包含多次相同的值。实际上,数组是由 html 表中的值组成的,借助 JQuery 和 DataTable,可以向其中添加行以同时添加更多数据。

到目前为止,我什至不知道如何发布数组,并发现以下解决方案可以做到这一点,如下代码:

<form method="post">
    <input name="country[]" value="France">
    <input name="country[]" value="Spain">
    <input name="country[]" value="Germany">
    <input type="submit">
</form>
$country = $_POST['country'];
print_r $country;

将包含以下数组结果:

|country|
|-------|
|France |
|Spain  |
|Germany|

太棒了。

但有时我需要做的是这样的:

<form method="post">
    <input name="country[]" value="France">
    <input name="country[]" value="France">
    <input name="country[]" value="France">
    <input type="submit">
</form>

我想要这个:

$country = $_POST['country'];
print_r $country;

包含数组:

|country|
|-------|
|France |
|France |
|France |

但是,POST 只包含

|country|
|-------|
|France |

而 Firefox 开发者工具清楚地表明该页面发送了我需要接收的确切数组。

Form Data
   country[]: [...]
      0: France
      1: France
      2: France

你能帮我解决这个问题吗? 非常感谢您的时间和关注。

【问题讨论】:

  • 您如何检查$_POST['country']; 包含的内容?
  • 为什么输入3次同名值?

标签: php html forms post


【解决方案1】:

感谢 Daan 询问我如何检查 $_POST['country']; 包含的内容。

我修改了我的原始帖子以包含这些信息。通过这样做,我看到我在更改它后检查了它,因为我稍后在 foreach 中再次使用它,以显示另一个数组中的所有行。

所以我以正确的方式检查了它。

事实证明我的问题更加不同,并且与我对 foreach 的使用有关。

确实,我使用国家名称作为 foreach 的索引。由于它只能使用唯一索引,因此它只使用一次“France”。

致 scaisEdge:这是我修改为匿名的数据,而国家/地区是这样做的最简单方法。想象一下产品而不是国家,这就是用户可以多次添加一个唯一名称的原因。

【讨论】: