Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.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_Ajax_Codeigniter_Codeigniter 3_Shopping Cart - Fatal编程技术网

Php Codeigniter中的购物车问题

Php Codeigniter中的购物车问题,php,ajax,codeigniter,codeigniter-3,shopping-cart,Php,Ajax,Codeigniter,Codeigniter 3,Shopping Cart,我试图在CodeIgniter中创建一个购物车,我尝试了文档中提到的方法,它工作得非常完美。但是当我尝试在templetes中使用它时,它不起作用。在文档中,产品是硬编码的,但我从数据库中获取产品并使用ajax插入 我的插入代码JS $(document).ready(function(){ $('.add-to-cart').click(function(){ var product_id=$(this).data("productid");

我试图在CodeIgniter中创建一个购物车,我尝试了文档中提到的方法,它工作得非常完美。但是当我尝试在templetes中使用它时,它不起作用。在文档中,产品是硬编码的,但我从数据库中获取产品并使用ajax插入

我的插入代码JS

$(document).ready(function(){
           $('.add-to-cart').click(function(){
              var product_id=$(this).data("productid");
              var product_name=$(this).data("productname");
              var product_price=$(this).data("productprice");
               var quantity=$('#' + product_id).val();
               if(quantity !='' && quantity>0)
                   {
                       $.ajax({
                           url:"<?php echo base_url();?>Cart/insert_product",
                           method:"POST",
                           data:{
                               product_id:product_id,product_name:product_name,product_price:product_price,quantity:quantity
                           },
                           success:function(data)
                           {
                                alert("Product added into cart");
                          // alert("Product added into cart and product info is: ID:" + product_id +'\n\r name:' + product_name + '\n\r price:' + product_price + '\n\r quantity:' + quantity);
                             //  $('#' + product_id).val('');
                       }
                       });
                   }
               else
                   {
                       alert("Please enter quantity");
                   }
           });
        });
当我点击“添加到购物车”按钮时,它会向我显示成功消息,但我非常确定产品没有插入购物车

我尝试访问产品的位置。

 <!-- cart items -->
                      <div class="nav-cart-items">
                        <?php $i = 1; 
                          if(!$this->cart->contents()){echo "no items found in cart";}
                          foreach ($this->cart->contents() as $items): 
                         var_dump($items);
                          if(empty($items)){echo "cart is empty";}else{ echo "<h1>cart has data</h1>";?>
                        <div class="nav-cart-item clearfix">
                         <h4>Cart Details</h4>
                          <div class="nav-cart-img">

                            <a href="#">
                              <img src="cart_small_1.jpg" alt="">
                            </a>
                          </div>
                          <div class="nav-cart-title">
                            <a href="#">
                              <?php echo $items['name'];?>
                            </a>
                            <div class="nav-cart-price">
                              <span><?php echo $items['qty'];?> x</span>
                              <span><?php echo $this->cart->format_number($items['price']);?></span>
                            </div>
                          </div>
                          <div class="nav-cart-remove">
                            <a href="#"><i class="ui-close"></i></a>
                          </div>
                        </div>
                        <?php $i++; ?>
                    <?php } endforeach;?>
                      </div> <!-- end cart items --> 
要测试内容并显示输出

F:\xampp\htdocs\cart\application\views\single_item.php:3:
array (size=0)
  empty
至于我,我认为我做错了什么,但不知道在哪里。。。 还请在CodeIgniter中建议cart解决方案,如文档中所示,cart库已折旧


非常感谢您对此提供的任何帮助。

为什么在控制器中使用$data。 如果我没有错,那么您是单独发送值,而不是在“$data multiassociative array”中

尝试删除$data=array(),并使用以下代码:

 $id = $this->input->post('product_id');
        $quantity = $this->input->post('quantity');
       $product_price = $this->input->post('product_price');
        $product_name = $this->input->post('product_name');

PHP脚本,即:
不会在
.js
文件中执行。因此,您的url是如何在评论中逐字显示在开发工具中的

您可以将js文件的内容移动到头模板中,使其驻留在视图中。或者您可以在js中将
base\u url()
自己定义为var(
var base\u url=)http://somesite.com/“;
)并像
base\u url
一样使用它,或执行以下操作:


url:“/cart/insert\u product”
假设
cart
不在
控制器的子目录中

我通常以这种方式获取post数据并插入到表中:

 $productId = $this->security->xss_clean($this->input->post('product_id'));
 $quantity = $this->security->xss_clean($this->input->post('quantity'));
 $productPrice = $this->security->xss_clean($this->input->post('product_price'));
 $productName = $this->security->xss_clean($this->input->post('product_name'));


    $data = array(
       "id" => $productId,
       "qty" => $quantity,
       "price" => $productPrice,
       "name" => $productName
    );

    $this->cart->insert($data);

打印(数据);在insert_product()中的数组之后。。。通过ajax添加项时,数组是否有数据?(应该能够在您的网络预览选项卡中看到这一点)除了
请求URL:http://localhost/cart/product/5 请求方法:获取状态代码:200确定远程地址:[:::1]:80引用方策略:降级时无引用缓存控制:无存储,无缓存,必须重新验证连接:保持活动内容类型:text/html;charset=UTF-8日期:2018年3月8日星期四03:55:30 GMT到期时间:1981年11月19日星期四08:52:00 GMT保持活动状态:超时=5,最大=100
打开开发工具(chrome)>网络选项卡。通过向购物车添加一个项目来提交ajax请求,您应该在列表末尾看到一个名为
insert\u product
的项目。单击该按钮,将显示更多选项卡。一个会有响应数据,点击那个,你们会看到你们的数组。这是ajax调试101。现在显示数据,但url似乎不正确。。。它的表现像<代码>请求URL:http://localhost/cart/product/%3C?php%20echo%20base_url();?%3ECart/insert_product在js中运行(或者说不运行)php脚本没有问题请参考此问题了解更多详细信息->使用输入类获取post VAR与使用post VAR本身在功能上没有区别…请您指导我完成映像过程。。我正在尝试用项目显示图像,但它不起作用。请将堆栈上的问题链接给我,我来看看。(如果您还没有提出问题,请提出新问题)
$data=array(
              array(
                'id'      => $_POST['product_id'],
                'qty'     => $_POST['quantity'],
                'price'   => $_POST['product_price'],
                'name'    => $_POST['product_name'])
        );
 $id = $this->input->post('product_id');
        $quantity = $this->input->post('quantity');
       $product_price = $this->input->post('product_price');
        $product_name = $this->input->post('product_name');
 $productId = $this->security->xss_clean($this->input->post('product_id'));
 $quantity = $this->security->xss_clean($this->input->post('quantity'));
 $productPrice = $this->security->xss_clean($this->input->post('product_price'));
 $productName = $this->security->xss_clean($this->input->post('product_name'));


    $data = array(
       "id" => $productId,
       "qty" => $quantity,
       "price" => $productPrice,
       "name" => $productName
    );

    $this->cart->insert($data);