2017-05-09 25 views
3

我正在使用购物车图书馆在CI中建立比萨店应用程序。 对于某些产品(比萨,沙拉......),可以添加配料。 这是我有:Codeigniter购物车 - 在披萨上添加番茄酱

Add_to _cart布顿

<button class="but_add_cart" 
     data-qty="1" 
     data-productid="<?php echo $food_item->item_id; ?>" 
     data-productname="<?php echo $food_item->item_name; ?>" 
     data-productprice="<?php echo $food_item->item_price; ?>" 
     data-adds="<?php echo $food_item->item_price; ?> 

与jQuery我打电话AJAX

$('.but_add_cart').click(function(){ 

     allVals = [] 

     $('#chk :checked').each(function() { 
      allVals.push($(this).val()); 
     }); 
     // here I'm getting all ingredients from checkboxes and push to array 

     var product_id = $(this).data("productid"); 
     var description = $(this).data("description"); 
     var product_name = $(this).data("productname"); 
     var product_price = $(this).data("productprice"); 
     var product_qty = $(this).data("qty"); 


     if(product_id != '' && product_id > 0) 
      { 
       $.ajax({ 
       url:"<?php echo base_url(); ?>menu/add", 
       type:"POST", 
       async: true, 
       data:{product_id:product_id, description:description, product_name:product_name, product_qty:product_qty, product_price:product_price, allVals:allVals}, 
       success:function(data) 
        { 
         $('#cart_details').html(data); 

        } 
       }); 

      } 
     else 
      { 
       alert("Please Enter quantity"); 
      } 
}); 

,并添加功能是:

function add() 
    { 
     $data = array(
      "id" => $_POST["product_id"], 
      "qty" => $_POST["product_qty"], 
      "price" => $_POST["product_price"], 
      "name" => $_POST["product_name"], 
      "description" => $_POST["description"], 
      "allVals" => $_POST["allVals"] 
     ); 

      print_r($data); 

      //$this->cart->insert($data); 
      //echo $this->view(); 

    } 

从print_r的我有这个阵列

Array 
(
    [id] => 1 
    [qty] => 1 
    [price] => 19.90 
    [name] => Pepperoni Pizza 
    [description] => Extra-virgin olive oil, garlic, mozzarella cheese 
    [allVals] => Array 
     (
      [0] => 2 
      [1] => 3 
      [2] => 4 
      [3] => 6 
     ) 
) 

现在,在购物车中,我想将配料(2,3,4,6)的辣香肠披萨作为一个项目。如果我再添加一个意大利辣香肠披萨,但使用不同配料,则应该是购物车中的单独物品。我试图给rowid添加一些随机数,但它给了我一些错误。

此外,每个成分海岸,所以我必须将这些价格添加到篮子中的每个项目的小计价格。

我知道问题很复杂,但我想知道我的方法是好还是有更好的方法来做到这一点?

+1

作为一个意大利人,我真的不知道番茄酱怎么可以吃披萨XD –

+0

这是在巴西,我认为我们是唯一把番茄酱放在披萨上的人...... –

+0

Hehehe,相信与否,人们把番茄酱放在披萨上,包括我:)而且我在塞尔维亚的意大利对面 – Pecooou

回答

0

在这里的答案是不使用成分作为关键?

asort($_POST['allVals']); 
$key = implode('',$_POST['allVals']); 

合并产品ID和$ key,看看该产品是否存在于购物车中。如果它确实更新了数量。你的配料是你独特的钥匙?

相关问题