【问题标题】:Remove from cart code not working从购物车代码中删除不起作用
【发布时间】:2017-02-24 01:57:32
【问题描述】:

我正在进行电子商务练习 - 将商品添加到购物车,然后将其移除。 items/cart 是存储在会话中并在 Controller 函数中操作的项目 ID 和数量值 - 除了产品 ID 之外,没有从数据库中提取任何内容。添加到购物车或更新有效,但删除无效。

据我所知,添加或删除函数很简单——一个应该增加一个值,另一个应该减少。代码如下。有什么想法吗?

从购物篮中删除:

    public function remove_from_basket($item_id)
    {
        // remove an item from a cart
        $quantity = $this->session->userdata($item_id);
        $quantity -= $this->session->post('qty');
        $this->session->set_userdata($item_id, $quantity);
        redirect('/eCommerceItems/eCommerce_basket');
    }      

Called from
    <?php 
         $total=0;
         foreach ($items as $item) 
         {
            $temp = $item['price'] * $this->session->userdata($item['id']);
            $total += $temp;
            if ($this->session->userdata($item['id']) > 0)
            {
               echo "<div class='item'>
                  <div class='description'>
                     <p>Name: {$item['name']}</p>
                     <p>Price: {$item['price']}</p>
                     <p>Quantity: {$this->session->userdata($item['id'])}</p>
                     <form action '/eCommerceItems/remove_from_basket/{$item['id']}' method='post'>
                        <select name='qty'>";
                        for($i=1;$i <= $this->session->userdata($item['id']);$i++)
                        {
                           echo "<option>{$i}</option>";
                        }
                        echo "</select>
                        <input type='submit' value='Remove'>
                        </form>
                     </div> 
                  </div>";
            }
         }

加入购物篮

public function add_to_basket($item_id)
{
    //Add an item to a cart
    $quantity = $this->session->userdata($item_id);
    $quantity += $this->input->post('qty');
    $this->session->set_userdata($item_id, $quantity);
    redirect('/eCommerceItems');
}

调用自:

<?php
                foreach($items as $item)
                {
                    echo "<div class='item'>
                        <div class='description'>
                            <p>Name: {$item['name']}</p>
                            <p>Description: {$item['description']}</p>
                            <p>Price: \${$item['price']}</p>
                            <p>Quantity Available: {$item['quantity']}</p>
                            <p>Item ID is: {$item['id']}</p> 
                            <form action='/eCommerceItems/add_to_basket/{$item['id']}' method='post'>
                                <select name='qty'>
                                    <option>1</option>
                                    <option>2</option>
                                    <option>3</option>
                                    <option>4</option>
                                    <option>5</option>
                                </select>
                                <input type='submit' value='Add to basket'>
                            </form>
                        </div>
                    </div>";
                }
            ?>

【问题讨论】:

  • 感谢所有建议 - 这似乎是生成的 HTML 按钮在 Opera 中未正确激活的问题,而不是 PHP 代码的问题。我没有根本原因(可能是空格或格式),但是从头开始重写 html 段修复了按钮操作。

标签: php codeigniter


【解决方案1】:

在您的代码中:

$quantity -= $this->session->post('qty');

这应该是:

$quantity -= $this->input->post('qty');

【讨论】:

    【解决方案2】:

    试一试...还需要考虑到我假设的低于 0 吗?

    public function remove_from_basket($item_id)
        {
            // remove an item from a cart
            $increment = $this->input->post('qty');
            $quantity = $this->session->userdata($item_id);
    
            $newQuantity = $quantity - $increment;
    
            if ($newQuantity > 1) {
                $this->session->set_userdata($item_id, $Quantity);
            } else {
                $this->session->unset_userdata($item_id);
            }
    
        }      
    

    如果您仍然遇到问题,我建议每个步骤都使用print_r($variable); die;(或使用 CI 的日志记录功能),看看您的值是否与您认为的一样?

    有时它只是更容易写出来更基本的让它工作......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      • 1970-01-01
      • 2015-07-05
      • 2017-01-29
      • 1970-01-01
      相关资源
      最近更新 更多