如何使用PHP/Codeigniter从单个表单检索多个文本框值


How to retrieve multiple text box values from single form using PHP/Codeigniter?

我在一个电子商务网站工作。我有一个产品页面,我有一个表单添加多个产品数量在同一时间使用按钮。在我的产品页面上,在我的单一表单中,我使用循环将单个产品值发送到下一页,如下所示:

<?
$query_data=$this->db->get('products');
foreach($query_data->result() as $product)
 {
?>
  <input name="productname[]" value="<?=$product->Name?>" type="hidden" />
 <input type = "hidden" id = "product_id" name = "product_id[]" value = "<?=$product->Code?>" />
  <input name="num_pallets[]" id="num_pallets" value="<?=$pallet?>" type="hidden" />
 <input type = "hidden" id = "num_packs" name = "num_packs[]" value = "<?=$packet?>" />
 <input type="text" name="quantity[]" id="quantity" size="2" />
<input type = "hidden" id = "product_price" name = "product_price" value = "<?=$number?>" />    
<? 
 }
 ?>

地点:

1)"quantity"字段是客户将要订购的产品的数量。

2)"num_pallets"字段是产品在数据库中拥有的产品的托盘数量。

3)"num_packs"字段是该产品在数据库中的包装数量。

现在,我想检索购物车页面上相应的值,以便我可以执行相应的计算。

我的另一个问题是,当我提交我的表单,它提交所有的值包括产品的值,我没有在文本框中输入数量。

我的问题:

我如何在我的页面上循环产品(我在文本框中输入"数量"),以便它只能给我订购产品的相应值,即如果我填写产品(11760)的数量文本框,那么我想处理11760的值,而不是其他产品。

如何检索1个或多个有序产品的对应值??由于

如果我理解正确的话,您是想检查是否有任意数量的产品都填写了数量,如果填写了,就进行相应的处理,对吗?

// controller method that receives posted form data
$quantity = $this->input->post('quantity');
foreach($this->input->post('product_id') as $key => $id){
    if($quantity[$key]){
        //there's a quantity for this product
    }
}

解决方案如下:我进行了计算和测试,发现为了将相应的索引与单个产品保持在一起,我需要以多维数组的形式传递产品代码,如下所示:

  <?
   if (isset($_POST['quantity']) && is_array($_POST['quantity']))  
  {
    $field_array = array();
     foreach($_POST['quantity'] AS $itemID => $value) 
     {  
            if ($_POST['quantity'][$itemID]>0)
          { 
         if (isset($_POST['product_id'][$itemID])&& (isset($_POST['product_price'][$itemID])) && (isset($_POST['counter'][$itemID]))&& (isset( $_POST['quantity'][$itemID])))
              {
                $productid=$_POST['product_id'][$itemID];
                $this->load->model('m_shopping_cart');
           $pricehead=($_POST['quantity'][$itemID])*($_POST['product_price'][$itemID]);
           $this->m_shopping_cart->add_to_cart($_POST['product_id'][$itemID],$_POST['product_price'][$itemID],$_POST['quantity'][$itemID],$_SESSION['cart_id'],$pricehead,false,false,false);
               }
         } 
      }
}
?>