我有一个表单,我正在编辑我的订单。在我的编辑订单页面上,我正在分解我的订单。例如,订单详情(客户名称,地址等),然后订购这样的项目:
订单明细:
<form name="edit_order" id="edit_order" method="post">
<?
if ($order_details) {
// print_array($order_details);
foreach ($order_details as $key => $link) {
?>
<div width="200">
<div><b>Product: </b> <br><?=$link->product_name?> - <?=$link->product_id?></div>
<div><strong>Cost:</strong><br>£<?=$link->unit_cost?></div>
<div><strong>Pack Qty:</strong><br><input name="quantity" id="quantity" value="<?=$link->quantity?>" style="width:50px;" /> </div>
<div><strong>Pack Cost:</strong> <br><input name="pack_cost" id="pack_cost" value="<?=$link->pack_cost?>" style="width:50px;" /> </div>
<div><strong>Pallet Qty:</strong><br><input name="pallet_quantity" id="pallet_quantity" value="<?=$link->pallet_quantity?>" style="width:50px;" /> </div>
<div><strong>Pallet Cost:</strong><br><input name="pallet_quantity" id="pallet_quantity" value="<?=$link->pallet_unit?>" style="width:50px;" /> </div>
</div>
<?
}
}
?>
我的问题是:
如何在下一页上为多个字段(输入框)检索这些值?
例如,如果我在编辑订单页面上编辑10个产品的“pallet_quantity”和“pack_cost”,那么我如何使用循环将它们保存在数据库中以在下一页上检索它们?
当我尝试在网页上显示这样的值:print($_POST['pack_cost'])
时,它给出了单值。如何循环POST数组以显示并将我编辑的值保存到数据库中?
帮帮我。
答案 0 :(得分:4)
您可以为输入值创建数组。看下面的代码......
<input name="pack_cost[]" id="pack_cost1" value="<?=$link->pack_cost?>" style="width:50px;" />
<input name="pack_cost[]" id="pack_cost2" value="<?=$link->pack_cost?>" style="width:50px;" />
<input name="pack_cost[]" id="pack_cost3" value="<?=$link->pack_cost?>" style="width:50px;" />
请记住,这些输入框的ID应该不同。
因此,当您在下一页上进行 echo $ _POST ['pack_cost'] 时,您将获得一个名为 pack_cost 的数组,其中包含键和值。
<强> EDITED 强>
整个代码: -
<form name="edit_order" id="edit_order" method="post">
<?
if ($order_details) {
// print_array($order_details);
foreach ($order_details as $key => $link) {
?>
<div width="200">
<div><b>Product: </b> <br><?=$link->product_name?> - <?=$link->product_id?></div>
<div><strong>Cost:</strong><br>£<?=$link->unit_cost?></div>
<div><strong>Pack Qty:</strong><br><input name="quantity[]" id="quantity<?php echo $key; ?>" value="<?=$link->quantity?>" style="width:50px;" /> </div>
<div><strong>Pack Cost:</strong> <br><input name="pack_cost[]" id="pack_cost<?php echo $key; ?>" value="<?=$link->pack_cost?>" style="width:50px;" /> </div>
<div><strong>Pallet Qty:</strong><br><input name="pallet_quantity[]" id="pallet_quantity<?php echo $key; ?>" value="<?=$link->pallet_quantity?>" style="width:50px;" /> </div>
<div><strong>Pallet Cost:</strong><br><input name="pallet_quantity[]" id="pallet_quantity<?php echo $key; ?>" value="<?=$link->pallet_unit?>" style="width:50px;" /> </div>
</div>
<?
}
}
?>
</form>
这就是输出你需要的东西。
以下是获取返回值的代码
if($_POST)
{
$field_array = array();
for( $i=0 ; $i < count($_POST['pack_cost']) ; $i++ )
{
$field_array[$i]['quantity'] = $_POST['quantity'][$i];
$field_array[$i]['pack_cost'] = $_POST['pack_cost'][$i];
$field_array[$i]['pallet_quantity'] = $_POST['pallet_quantity'][$i];
$field_array[$i]['pallet_cost'] = $_POST['pallet_cost'][$i];
// if you require then the query for your database
}
}
答案 1 :(得分:0)
据我了解,你想这样做:
foreach ($_POST as $tag => $value) {
// Do whatever you want with the params
}
答案 2 :(得分:0)
使用会话级别存储
(i.e) $_SESSION[ID][field1], $_SESSION[ID][field2], $_SESSION[ID][field3]
在从一个页面移动到另一个页面以获取其他字段时...您使用一个会话ID存储来自SESSION中上一页的数据..并且在下一个即将到来的页面中执行相同的操作..但使用相同的会话ID一个完整的Form ...在显示在下一页或最后一页之后......或者如果你需要将数据存储到DB(在流程结束时)来自会话变量并取消/删除所有那些会话数据,包括id,如果你不想要的话......
对于Codeigniter,您使用会话库来实现这些概念...请参阅为会话变量分配和检索值,
<强> CodeIgniter Session 强>