如何在我的HTML表单中使用发布到PHP的数组格式输入字段名称?

前端之家收集整理的这篇文章主要介绍了如何在我的HTML表单中使用发布到PHP的数组格式输入字段名称?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我理解使用数组格式的 HTML输入名称的基础知识.如果我有一个带有可变数量的’item’输入的表单,我可能会为每个表单执行以下操作:
<input name='item[]' type='text' />

当我从$_POST数组中检索项目时,我可以像这样迭代它们:

$items = $_POST['item'];
foreach($items as $item) {
}

但我的问题稍微复杂一些.我有一个表单,用户可以单击“添加一个”按钮,并在表单的底部编号显示一个新行.每个新行都包含“名称”和“描述”输入.

所以最初我以为我会这样做:

<input name='item[name][]' type='text' />
<input name='item[description][]' type='text' />

然后像这样迭代它们:

$items = $_POST['item'];
foreach($items as $item) {
  print $item['name'] . ' ' . $item['description'];
}

但是不是像我希望的那样工作,而是构造’item’数组,这样我就可以将第一个项目名称作为$item [‘name’] [0]而不是$item [0] [‘name’]来访问.

然后我翻了它,以便我的输入被命名为:

<input name='item[][name]' type='text' />
<input name='item[][description]' type='text' />

但是这会为每个“名称”和每个“描述”生成一个单独的“项目”,而不是将每个对分组到一个“项目”中.

我真的不喜欢’name’数组和’description’数组.我更喜欢’item’数组,每个数组包含’name’和’description’字段.有没有办法在我的javascript中生成索引而无法完成此操作?由于人们可以动态地添加删除这些,因此我的javascript很难为下一个项目计算适当的索引.一般没有办法做到这一点吗?

解决方法

不可能做你想要的,但如果它有帮助,这里有一些代码将它重新组合在一起,我认为它将起作用(使用item_name []和item_description []):
$items_desc = $_POST["item_description"];
$items_name = $_POST["item_name"];
$items = array();
for ($i = 0; $i < count($items_name); $i++)
{
    $items[] = array("name" => $items_name[$i],"description" => $items_desc[$i]);
}

猜你在找的HTML相关文章