让我们从表格布局开始,如下所示:
Item No. [Store 1] [Store 2] [Store 3]
[ x1 ] [ 3 ] [ 2 ] [ 5 ]
[ x2 ] [ 0 ] [ 5 ] [ 1 ]
请注意这个[ ]
表示为输入文本字段。
现在每个文本字段的名称都设置为array
:
$n= array();
$item = array();
$s = array();
项目编号
echo "<input type='text' value='".$row['item_no']."' name='item[]' readonly='readonly' />";
商店1,2和3
echo "<input type='text' value='".$row['short']."' name='s[]' readonly='readonly' />";
每个商店下方的字段
echo "<input type='text' value='' name='n[]' />";
我希望它清楚,因为你可以看到有3 arrays
被发现。现在,当我将此表单提交到下一页时......
if(isset($_POST['n']) && isset($_POST['s']) && isset($_POST['item'])){
if(is_array($_POST['n']) && is_array($_POST['s']) && is_array($_POST['item'])) {
foreach( $_POST['n'] as $index => $nqty) {
echo 'QTY = '.$nqty . ' STORE = ' . $_POST['s'][$index]."<br />";
//End of Foreach loop
}
}}
上面代码的输出如下所示:
QTY = 3 STORE = store 1
QTY = 2 STORE = store 2
QTY = 5 STORE = store 3
QTY = 0 STORE = store 1
QTY = 5 STORE = store 2
QTY = 1 STORE = store 3
我现在想要的是我应该如何或在哪里放置物品。上面代码中的数组..换句话说,我希望输出完全像这样:
QTY = 3 STORE = store 1 Item No. = x1
QTY = 2 STORE = store 2 Item No. = x1
QTY = 5 STORE = store 3 Item No. = x1
QTY = 0 STORE = store 1 Item No. = x2
QTY = 5 STORE = store 2 Item No. = x2
QTY = 1 STORE = store 3 Item No. = x2
有可能吗?如果不是这样做的另一种方式。
请帮助,我完全坚持这个项目。
回复@ user3702775
我测试了您的代码,更改了s[][]
和n[][]
的名称,其输出如下所示:
QTY = 3 STORE = store 1 Item No. - x1
QTY = 2 STORE = store 2 Item No. - x2
它甚至错过了商店3和下一行。
商店1,2和3
echo "<input type='text' value='".$row['short']."' name='s[][]' readonly='readonly' />";
每个商店下方的字段
echo "<input type='text' value='' name='n[][]' />";
foreach代码:
foreach( $_POST['item'] as $key=>$value){
foreach( $_POST['n'][$key] as $index => $nqty) {
echo 'QTY = '.$nqty . ' STORE = ' . $_POST['s'][$key][$index]." Item No. - ".$value."<Br />";
//End of Foreach loop
}
}
解决了:
更改以下输入文本字段的名称,如下所示:
项目编号
echo "<input type='text' value='".$row['item_no']."' name='item[$j]' readonly='readonly' />";
商店1,2和3
echo "<input type='text' value='".$row['short']."' name='s[$j][]' readonly='readonly' />";
每个商店下方的字段
echo "<input type='text' value='' name='n[$j][]' />";
然后在代码开头
分配$j=0;
并将$j++;
放在最后
然后在提交页面:
foreach( $_POST['item'] as $key=>$value){
foreach( $_POST['n'][$key] as $index => $nqty) {
echo 'QTY = '.$nqty . ' STORE = ' . $_POST['s'][$key][$index]." Item No. - ".$value."<Br />";
//End of Foreach loop
}
}
感谢@ user3702775
答案 0 :(得分:3)
将商店和字段数组设为s [] []和n [] [],并为每个项目设置第一个索引。
E.g。 - 对于第一项,商店和字段名称将为s [0] []和n [0] [],依此类推。
然后提交你的循环之后会像 -
foreach( $_POST['item'] as $key=>$value){
foreach( $_POST['n'][$key] as $index => $nqty) {
echo 'QTY = '.$nqty . ' STORE = ' . $_POST['s'][$key][$index]." Item No. - ".$value."<br /> ";
//End of Foreach loop
}
}