【问题标题】:Post Multiple Values from a PHP Array从 PHP 数组中发布多个值
【发布时间】:2012-07-27 03:31:43
【问题描述】:

我正在编写一个奇幻宠物游戏。目前,我正在开发一种工具来帮助用户管理他们的个人商店库存。该工具包括更改每件商品的销售价格的选项 - 这就是我的问题所在。在这里,让我告诉你:

HTML

<form method="post">
<input type="text" name="cost[$item_id]" value="" />
<input type="submit" name="submit" value="Submit" />
</form>

$item_id 是一个变量,对应于正在编辑的项目。必须包含在数组中,否则……不知道哪个价格对应哪个商品。

另外,这个脚本:

<input type="text" name="cost[$item_id]" value="" />

针对商店库存中的商品数量重复。因此,表单可以包含无限数量的这些条目。因此数组。

脚本

if(isset($_POST['update'])) {

foreach ($_POST['cost'] as $key => $value) {
$submitted_array = array_keys($_POST['cost']); 
echo ($_POST['cost'][$submitted_array[0]] . " " . $submitted_array[0]); 
}

}

上面的脚本可以工作......但是,它只会打印数组中的第一组数据。

现在,这似乎很好 - 但是,还记得我说过我可以拥有无​​限数量的成本条目吗?那是我的问题——当我使用一个变量来替换上面脚本中的“0”时,该函数会停止一起工作。如果我知道数组总共包含多少个条目,我可以重复这个函数——但我不知道。那么我能做什么呢?我的问题有简单的解决方案吗?

可以在表单中添加一个隐藏字段来指定要更改的项目数量 - 我只是不知道这是否会有所帮助。

如果您想查看表单的屏幕标题以更好地理解我在说什么,只需提出要求,您就会收到!

【问题讨论】:

标签: php arrays forms foreach


【解决方案1】:

那是因为您多次重写 $submitted_array 变量,而您只需要一次。

if (isset($_POST['update'])) {
    $submitted_array = array_keys($_POST['cost']);
    foreach ($_POST['cost'] as $key => $value) {
        echo ($_POST['cost'][$submitted_array[0]] . " " . $submitted_array[0]);
    }
}

另外,考虑到您的 cost 数组,您根本不需要使用 array_keys

if (isset($_POST['update'])) {
    foreach ($_POST['cost'] as $item_ID => $item_cost) {
        echo ($item_ID . " " . $item_cost);
    }
}

【讨论】:

  • 我试过那个答案,但它仍然只发布第一组数据。它确实打印了 X 次,但是.. 它只发布一组数据。
  • 完美运行! =D 非常感谢您的快速帮助!我真的很感激!
  • @Connie,请投票,最重要的是,将答案标记为正确。很高兴在这里帮助其他人。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-31
  • 2020-10-12
  • 2014-10-06
  • 1970-01-01
  • 2010-12-06
  • 2018-06-13
  • 1970-01-01
相关资源
最近更新 更多