📅  最后修改于: 2023-12-03 15:39:15.839000             🧑  作者: Mango
在一个电子商务网站中,购物车是一个很重要的功能,用户可以将他们想要的商品添加到购物车中。在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来添加购物车的功能。我们创建了一个添加至购物车的表单,在控制器中编写了添加购物车请求的方法,并在购物车页面中显示了购物车中的所有商品。
虽然这只是购物车功能的一个基本实现,但是我们可以根据我们的需要来扩展它,如:添加更多的购物车功能、购物车的结账等等。