当我在页面上回显多个订单并提交时,问题就出现了。这是我的表格:
<input name="checkOrder['.($row['ord_no']).'][ord_no]" value="'.($row['ord_no']).'" type="checkbox" class="checkOrder" id="checkOrder">
<input type="hidden" name="checkOrder['.($row['ord_no']).'][item_seq_no]" value="'.$line_number.'" />
<input type="hidden" name="checkOrder['.($row['ord_no']).'][item_no]" value="'.$item_number.'" />
<input type="hidden" name="checkOrder['.($row['ord_no']).'][item_desc_1]" value="'.$item_description.'" /></input>
现在我的输出就是:
Array ( [ord_no] => 1000007 [item_seq_no] => 1 [item_no] => 001 [item_desc_1] => item1 )
Array ( [ord_no] => 1000008 [item_seq_no] => 1 [item_no] => 002 [item_desc_1] => item2 )
Array ( [ord_no] => 1000000 [item_seq_no] => 1 [item_no] => 003 [item_desc_1] => item3 )
Array ( [ord_no] => 1000001 [item_seq_no] => 1 [item_no] => 001 [item_desc_1] => item1 )
我更喜欢这个:
[checkOrder] => Array
(
[ord_no] => 1000007
(
[item_seq_no] => 1 [item_no] => 001 [item_desc_1] => item1
)
[ord_no] => 1000008
(
[item_seq_no] => 1 [item_no] => 002 [item_desc_1] => item2
)
[ord_no] => 1000000
(
[item_seq_no] => 1 [item_no] => 003 [item_desc_1] => item3
)
[ord_no] => 1000001
(
[item_seq_no] => 1 [item_no] => 001 [item_desc_1] => item1
)
)
那么如何更改我的表单以创建一个大数组而不是多个数组,或者我没有正确考虑这个问题。现在我将所有这些被检入到foreach循环内的表中。然后在我的foreach之外发送一封电子邮件。它只是将第一个数组顺序#插入电子邮件中。当我真的需要每个被检查的人。我相信我想到的其他阵列会解决我的问题。如果您想了解更多信息,请告诉我们。
答案 0 :(得分:0)
将表单更改为:
<input name="checkOrder['.($row['ord_no']).'][checked]" value="" type="checkbox" class="checkOrder" id="checkOrder">
<input type="hidden" name="checkOrder['.($row['ord_no']).'][ord_no]" value="'.($row['ord_no']).'" />
<input type="hidden" name="checkOrder['.($row['ord_no']).'][item_seq_no]" value="'.$line_number.'" />
<input type="hidden" name="checkOrder['.($row['ord_no']).'][item_no]" value="'.$item_number.'" />
<input type="hidden" name="checkOrder['.($row['ord_no']).'][item_desc_1]" value="'.$item_description.'" /></input>
如果你现在var_dump($ _ POST);你有:
[checkOrder] => Array
(
[1000007] => Array
(
[ord_no] => 1000007, [item_seq_no] => 1, [item_no] => 001, [item_desc_1] => item1, [checked]='on'
)
[1000008] => Array
(
[ord_no] => 1000008, [item_seq_no] => 1, [item_no] => 002, [item_desc_1] => item2, [checked]='on'
)
[1000000] => Array
(
[ord_no] => 100000, [item_seq_no] => 1, [item_no] => 003,[item_desc_1] => item3, [checked]='on'
)
[1000001] => Array
(
[ord_no] => 1000001, [item_seq_no] => 1, [item_no] => 001, [item_desc_1] => item1, [checked]='on'
)
)
[checked]='on'
仅在您在表单中检查过时才会出现。
希望有所帮助。
I need to save just the order numbers outside the foreach
然后使用array_keys($_POST['checkOrder'])
并获得ID。
但你应该使用而不是
<input name="checkOrder['.($row['ord_no']).'][checked]" value="" type="checkbox" class="checkOrder" id="checkOrder">
此
<input name="checkedOrders[]" value="'.($row['ord_no'].'" type="checkbox" class="checkOrder" id="checkOrder">
然后在$_POST['checkedOrders']
中是表格中检查过的所有ID。
其余的仍然是一样的。