Con*_*nie 2 php forms arrays foreach
我正在编写一个奇幻宠物游戏.目前,我正在开发一种工具来帮助用户管理他们的个人商店库存.该工具包括更改每个项目的销售价格的选项 - 这就是我的问题所在.在这里,让我告诉你:
HTML
<form method="post">
<input type="text" name="cost[$item_id]" value="" />
<input type="submit" name="submit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
$ item_id是一个与正在编辑的项目对应的变量.它必须包含在数组中,否则......我不知道哪个价格对应于哪个项目.
此外,这个脚本:
<input type="text" name="cost[$item_id]" value="" />
Run Code Online (Sandbox Code Playgroud)
重复商店库存中的商品数量.因此,表单可以包含无限量的这些条目.因此阵列.
剧本
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]);
}
}
Run Code Online (Sandbox Code Playgroud)
上面的脚本可以工作......但是,它只会打印数组中的第一组数据.
现在,这似乎很好 - 但是,还记得我说我可以拥有无限量的成本条目吗?这是我的问题 - 当我使用变量替换上面脚本中的"0"时,该函数将停止一起工作.我可以重复这个函数,如果我知道数组中包含多少条目 - 但我不知道.那我该怎么办?我的问题有一个简单的解决方案吗?
在表单中添加一个隐藏字段,可以指定要更改的项目数量 - 我只是不知道它是否有用.
如果您希望看到表单的屏幕标题以更好地理解我正在谈论的内容,请询问,您将收到!
那是因为$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]);
}
}
Run Code Online (Sandbox Code Playgroud)
另外,考虑到您的cost
阵列,您根本不需要使用array_keys
:
if (isset($_POST['update'])) {
foreach ($_POST['cost'] as $item_ID => $item_cost) {
echo ($item_ID . " " . $item_cost);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5659 次 |
最近记录: |