【问题标题】:Codeigniter cart - add ketchup on pizzaCodeigniter 购物车 - 在披萨上添加番茄酱
【发布时间】:2017-05-09 11:41:53
【问题描述】:

我正在使用购物车库在 CI 中构建比萨店应用程序。 对于某些产品(比萨、沙拉......),可以选择添加成分。 这就是我所拥有的:

添加到购物车按钮

<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 添加一些随机数,但它给了我一些错误。

此外,每种成分都会下降,因此我必须将这些价格添加到篮子中每件商品的小计价格中。

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

【问题讨论】:

  • 作为一个意大利人,我真的不明白番茄酱怎么能放在披萨上 XD
  • 这是在巴西吗,我以为只有我们在披萨上放番茄酱...
  • 嘿嘿嘿,信不信由你,人们在披萨上放番茄酱,包括我在内 :) 而我就在塞尔维亚对面的意大利
  • 具体代码相关问题是什么?
  • 比萨和配菜/材料设置好后,您为什么不向 *2 或 *3 相同的项目询问/提供?如果是,则推送数组qty +1 否则在数组中添加另一个项目,不是吗?不同配料的比萨可以看作是不同的菜肴吗?除此之外,这个问题公然离题,因为披萨应该永远在一些番茄酱下结束^^

标签: php jquery ajax codeigniter


【解决方案1】:

这里的答案是不是以成分为关键?

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

结合产品 ID 和 $key 并查看该产品是否存在于购物车中。如果是,则更新数量。您的成分是您独一无二的钥匙?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多