Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不允许同一产品超过一次性CodeIgniter购物车_Php_Jquery_Html_Codeigniter 3_Shopping Cart - Fatal编程技术网

Php 不允许同一产品超过一次性CodeIgniter购物车

Php 不允许同一产品超过一次性CodeIgniter购物车,php,jquery,html,codeigniter-3,shopping-cart,Php,Jquery,Html,Codeigniter 3,Shopping Cart,我正在使用CodeIgniter购物车,下面是在浏览器上显示我所有详细信息的代码 (只需分享逻辑部分) 现在我的问题是,当我单击“添加到购物车”时,它正在购物车中添加产品详细信息,并且我正在将按钮状态从添加到购物车更改为删除。现在,当我刷新页面时,我的按钮再次从Remove更改为addtocart。我不想多次添加同一产品 Ajax $(document).ready(function(){ $(document).on('click', '.add_cart', function()

我正在使用CodeIgniter购物车,下面是在浏览器上显示我所有详细信息的代码

(只需分享逻辑部分)

现在我的问题是,当我单击“添加到购物车”时,它正在购物车中添加产品详细信息,并且我正在将按钮状态从
添加到购物车
更改为
删除
。现在,当我刷新页面时,我的按钮再次从
Remove
更改为
addtocart
。我不想多次添加同一产品

Ajax

    $(document).ready(function(){
  $(document).on('click', '.add_cart', function() {
  var product_name = $(this).closest('tr').find('.productname').text();
  var product_id = $(this).closest('tr').find('.productid').val();
  var product_price = $(this).closest('tr').find('.calActivitylPrice').text();
      var quantity =1;
       $.ajax({
        url:"<?php echo base_url(); ?>Member_controller/addToCart",
        method:"POST",
        data:{product_id:product_id, product_name:product_name, product_price:product_price,quantity:quantity},
        success:function(data)
        {
            var obj = JSON.parse(data);
          //alert(data);
         $('#changeToRemove').html('<button type="button" name="remove" class="btn btn-danger btn-xs remove_inventory" id="'+obj.removebtn+'">Remove</button>')
         $('#primarycart_details').html(obj.subtotal);
        }
       });
     });
    });
添加到控制器中的购物车代码

public function Removecart(){
 $row_id = $_POST["row_id"];
 //echo $row_id;
  $data = array(
   'rowid'  => $row_id,
   'qty'  => 0
  );
  //print_r($data);
  $this->cart->update($data);
  echo $this->viewCart();

}
public function addToCart(){
  $data = array(
   "id"  => $_POST["product_id"],
   "name"  => $_POST["product_name"],
    "qty"  => $_POST["quantity"],
   "price"  => $_POST["product_price"]
  );
  //print_r($data);
  $this->cart->insert($data); //return rowid 
  //echo $this->viewCart();
}

有人能帮我解决这个问题吗?

您可以在产品循环中设置如下条件:

<?php
foreach ($post as $row) {?>
<tr>
    <td><?php echo $i++;?></td>
    <td><?php echo $row->name;?></td>
    <td><?php echo $row->price;?></td>
    <td>
    <?php if($row->is_approved==1){
        if (in_array($row->id, array_column($this->cart->contents(), 'id'))) {
            $rowid = 0;
            foreach ($this->cart->contents() as $product) {if ($product['id'] === $row->id) { $rowid = $product['rowid']; break;}}
            ?>
        <button type="button" name="remove" class="btn btn-danger btn-xs remove_inventory" id="<?php echo $rowid; ?>">Remove</button>
        <?php } else { ?>
        <button type="button" name="renew" class="btn btn-success add_cart" data-productname="<?php echo $row->name; ?>" data-price="<?php echo $row->price;?>" data-productid="<?php echo $row->name_id; ?>" />Add to cart</button>
        <?php } ?>
    <?php }else{?>
    <div class="activity_status">Not Approved</div>
    <?php };?>
    </td>
</tr>

<div id="primarycart_details"></div>
<?php
}


请给我一些时间检查是的,您的代码正在工作,但是从购物车中删除现在不工作。您没有共享删除购物车代码,因此我不知道它应该如何工作,我只是共享示例我刚刚更新了删除代码。使用您的代码,它正在发送id,但要从购物车中清除记录,它需要rowid。您的javascript删除代码似乎没有删除html代码,它只是显示警报
public function Removecart(){
 $row_id = $_POST["row_id"];
 //echo $row_id;
  $data = array(
   'rowid'  => $row_id,
   'qty'  => 0
  );
  //print_r($data);
  $this->cart->update($data);
  echo $this->viewCart();

}
public function addToCart(){
  $data = array(
   "id"  => $_POST["product_id"],
   "name"  => $_POST["product_name"],
    "qty"  => $_POST["quantity"],
   "price"  => $_POST["product_price"]
  );
  //print_r($data);
  $this->cart->insert($data); //return rowid 
  //echo $this->viewCart();
}
<?php
foreach ($post as $row) {?>
<tr>
    <td><?php echo $i++;?></td>
    <td><?php echo $row->name;?></td>
    <td><?php echo $row->price;?></td>
    <td>
    <?php if($row->is_approved==1){
        if (in_array($row->id, array_column($this->cart->contents(), 'id'))) {
            $rowid = 0;
            foreach ($this->cart->contents() as $product) {if ($product['id'] === $row->id) { $rowid = $product['rowid']; break;}}
            ?>
        <button type="button" name="remove" class="btn btn-danger btn-xs remove_inventory" id="<?php echo $rowid; ?>">Remove</button>
        <?php } else { ?>
        <button type="button" name="renew" class="btn btn-success add_cart" data-productname="<?php echo $row->name; ?>" data-price="<?php echo $row->price;?>" data-productid="<?php echo $row->name_id; ?>" />Add to cart</button>
        <?php } ?>
    <?php }else{?>
    <div class="activity_status">Not Approved</div>
    <?php };?>
    </td>
</tr>

<div id="primarycart_details"></div>
<?php
}