使用PHP在多个post表单值上循环

使用PHP在多个post表单值上循环,php,codeigniter,Php,Codeigniter,我有一个编辑订单的表单。在我的“编辑订单”页面上,我将对订单进行细分。例如,订单详细信息(客户名称、地址等),然后订购如下项目: 订单详情: <form name="edit_order" id="edit_order" method="post"> <? if ($order_details) { // print_array($order_details); fo

我有一个编辑订单的表单。在我的“编辑订单”页面上,我将对订单进行细分。例如,订单详细信息(客户名称、地址等),然后订购如下项目:

订单详情:

     <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>&pound;<?=$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>
                    <?
                    }
                }
           ?>

产品:
- 成本:
英镑;
包装数量:
据我所知,您想这样做:

foreach ($_POST as $tag => $value) {
// Do whatever you want with the params
}

您可以为输入值创建数组。查看下面的代码

<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;" />

产品:
- 成本:
英镑;
包数量:
使用会话级存储

(i.e) $_SESSION[ID][field1], $_SESSION[ID][field2], $_SESSION[ID][field3]
从一个页面移动到另一个页面以获取其他字段时。。您使用一个会话ID在会话中存储上一页的数据。。在接下来的几页中,做同样的事情。。但是对整个表单使用相同的会话ID。。。在下一页或最后一页显示之后。。。或者,如果您需要将会话变量中的数据存储到DB中(在进程结束时),并取消设置/删除包括id在内的所有会话数据(如果您不希望的话)

对于Codeigniter,您可以使用会话库来实现这些概念。。。请参阅为会话变量赋值和检索值


嘿,anuj,我试过你的主意。该数组给出的是类似于此数组的常规值([0]=>44990[1]=>44364[2]=>436467[3]=>477487[4]=>893747[5]=>347467),但我可以像这样用自己的值更改数组值([123]=>45678[145]=>556789)吗…….实际上,我想要这样做的原因是我需要将它们重新插入数据库中。为此,我需要使用唯一id来识别它们。@anujarora.您能否编辑您的答案,以显示如何根据下一页上的索引值检索多个值?我希望是这样,但是$\u POST通过--name--而不是--id--获取输入字段的值。但我认为在表单中使用数组只用于具有相同名称和输入类型的多个字段。不是所有的输入字段类型。@anujarora.Hi anuj。我想要输出。我想知道您如何检索多个产品的数组值。例如,如果我在上面的页面上编辑10个产品,那么我如何检索每个产品的输入字段值??任何想法。这就是我想要的。ThanksBilal Khalid-请在twitter.com/Le3jeb上与我联系
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
    }
}
(i.e) $_SESSION[ID][field1], $_SESSION[ID][field2], $_SESSION[ID][field3]