📌  相关文章
📜  将商品添加到购物车 codeigniter - PHP (1)

📅  最后修改于: 2023-12-03 15:39:15.839000             🧑  作者: Mango

将商品添加到购物车 codeigniter - PHP

在一个电子商务网站中,购物车是一个很重要的功能,用户可以将他们想要的商品添加到购物车中。在CodeIgniter中,将商品添加到购物车非常简单。

第一步:创建一个添加至购物车的表单

首先,我们需要在网站的页面中创建一个添加至购物车的表单。这个表单可以是一个简单的表单,用户可以在其中选择他们要添加的商品数量和规格。在这个表单中,我们需要使用POST方法来提交表单数据。

<form action="<?php echo site_url('cart/add');?>" method="post">
    <input type="hidden" name="product_id" value="123">
    <input type="number" name="quantity" value="1">
    <button type="submit">Add to Cart</button>
</form>

在这个表单中,我们使用了一个名为“product_id”的隐藏输入字段,以及一个名为“quantity”的文本输入字段。当用户点击“Add to Cart”按钮时,表单将提交到我们指定的URL,这个URL是我们将在下一步中处理添加购物车请求的控制器方法。

第二步:编写控制器方法来处理添加购物车请求

在CodeIgniter中,我们可以创建一个名为“Cart”(或任何其他适合您应用程序的名称)的控制器,该控制器专门用于处理购物车相关的请求。

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Cart extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
        $this->load->library('cart');
    }

    public function add()
    {
        $product_id = $this->input->post('product_id');
        $quantity = $this->input->post('quantity');
        
        if ($quantity > 0) {
            $product = $this->db->get_where('products', array('id' => $product_id))->row();
            $data = array(
                'id' => $product->id,
                'name' => $product->name,
                'price' => $product->price,
                'qty' => $quantity
            );
            $this->cart->insert($data);
        }
        
        redirect('cart');
    }

    public function index()
    {
        $data = array(
            'cart_contents' => $this->cart->contents(),
        );
        $this->load->view('cart', $data);
    }
    
}

在这个控制器中,我们首先在构造函数中加载了CodeIgniter自带的购物车库。接下来,我们定义了一个名为“add”的方法,该方法将接受来自前一步中表单的POST请求。在“add”方法中,我们首先获取了从表单中传递过来的产品ID和数量。如果数量大于0,则从数据库中获取要添加到购物车中的产品,并使用购物车库的“insert”方法将其添加到购物车中。

最后,我们重定向到购物车页面,购物车页面后面将会实现。

第三步:显示购物车中的商品

在最后一步中,我们需要创建一个购物车页面来显示当前购物车中的所有商品。

<?php if (!empty($cart_contents)): ?>
    <table>
        <thead>
            <tr>
                <th>Name</th>
                <th>Price</th>
                <th>Quantity</th>
                <th>Total</th>
                <th></th>
            </tr>
        </thead>
        <tbody>
            <?php foreach ($cart_contents as $item): ?>
                <tr>
                    <td><?php echo $item['name']; ?></td>
                    <td><?php echo $item['price']; ?></td>
                    <td><?php echo $item['qty']; ?></td>
                    <td><?php echo $item['subtotal']; ?></td>
                    <td><a href="<?php echo site_url('cart/remove/'.$item['rowid']); ?>">Remove</a></td>
                </tr>
            <?php endforeach; ?>
        </tbody>
        <tfoot>
            <tr>
                <td colspan="3" style="text-align:right;">Total:</td>
                <td><?php echo $this->cart->format_number($this->cart->total()); ?></td>
                <td></td>
            </tr>
        </tfoot>
    </table>
<?php else: ?>
    <p>Your cart is empty.</p>
<?php endif; ?>

在这个页面中,我们首先检查购物车中是否存在商品。如果存在商品,则将它们列出到一个表格中,并提供一个“删除”链接以便用户可以从购物车中删除商品。否则,如果购物车为空,则将显示一条消息,通知用户他们的购物车为空。

在购物车的表格底部,我们还显示了购物车中所有商品的总价。

总结

在这个过程中,我们学习了如何使用CodeIgniter来添加购物车的功能。我们创建了一个添加至购物车的表单,在控制器中编写了添加购物车请求的方法,并在购物车页面中显示了购物车中的所有商品。

虽然这只是购物车功能的一个基本实现,但是我们可以根据我们的需要来扩展它,如:添加更多的购物车功能、购物车的结账等等。