【问题标题】:Loop $_POST variables with multiple similar names循环具有多个相似名称的 $_POST 变量
【发布时间】:2017-09-17 02:17:19
【问题描述】:
<input name="name_for_the_items[]"/>
foreach($_POST['name_for_the_items'] as $item)
{
  //do something with $item
}

这是我从Question 得到的代码。它适用于 1 HTML input。我想要做的是我还有 4 个需要循环的输入。我怎样才能使用上面给出的类似代码来做到这一点?

我试过了

<input name="id[]"/>
<input name="time[]"/>
<input name="day[]"/>
<input name="room[]"/>
foreach($_POST['id'] as $item1) {
  foreach($_POST['time'] as $item2) {
     ....
  }
}

但它是数据的三倍或更多。请帮忙。

【问题讨论】:

  • 请在您的问题中更加准确。定义这些“输入”的确切 html 标记是什么?
  • @arkascha 看到我更新了问题

标签: php post pdo


【解决方案1】:

我会建议这样的事情:

HTML 标记:

<form>
  <input name="aspect[id][]"/>
  <input name="aspect[time][]"/>
  <input name="aspect[day][]"/>
  <input name="aspect[room][]"/>
</form>

处理PHP代码:

<?php
foreach($_POST['aspect'] as $key => $values) {
    foreach($values as $index => $value) {
        // do something with $key, $index and $value
    }
}

还有一个一般性评论:帮自己一个忙,将创建/定义表单的代码与处理表单的代码分开保存在一个单独的文件中。我确实知道大多数初学者教程都将这两种东西混合在一起,但实际上这是一件非常愚蠢的事情。

【讨论】:

  • 如何从该循环中获取数据?我尝试了$index,但它给了我一个错误SQLSTATE[23000]: Integrity constraint violation。抱歉,我是 php 新手
  • 这显然是 SQL 级别的问题。您是否甚至费心阅读该错误消息(“SQLSTATE”)?这与 php 中的那些循环或表单处理无关
  • 告诉我如何从那个循环中获取数据,先生
猜你喜欢
  • 1970-01-01
  • 2014-06-09
  • 2012-07-19
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 2016-04-10
  • 1970-01-01
  • 2016-07-12
相关资源
最近更新 更多