0

ボタンを使用して複数の製品数量を同時に追加するための単一のフォームがある製品ページがあります。私の製品ページでは、単一のフォーム内で、ループを使用して次のように個々の製品値を次のページに送信しています。

<?
$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) 「数量」フィールドは、顧客が注文する製品の数量です。

2) 「num_pallets」フィールドは、製品がデータベースにある製品のパレット数量です。

3) 「num_packs」フィールドは、製品がデータベースに持っている製品のパック数量です。

今、私はそれに応じて計算を実行できるように、ショッピングカートページで対応する値を取得したいと考えています。

私が抱えているもう1つの問題は、フォームを送信すると、テキストボックスに数量を入力していない製品の値を含むすべての値が送信されることです。

私の質問:

ページの製品 (テキスト ボックスに「数量」を入力) をループして、注文した製品の対応する値のみを取得するにはどうすればよいですか。つまり、製品の数量テキスト ボックス (11760) を入力した場合他の製品ではなく、11760 の値を処理したい。

1つ以上の注文商品のみの対応する値を取得するにはどうすればよいですか??ありがとう

4

2 に答える 2

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
    }
}
于 2013-01-17T15:34:36.977 に答える
0

これが解決策です。私はそれを解決し、テストした結果、対応するインデックスを個々の製品と一緒に保持するために、製品コードを次のような多次元配列の形式で渡す必要があることがわかりました。

  <?
   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);
               }
         } 
      }

}
?>
于 2013-01-22T13:31:03.147 に答える