我在Codeigniter中使用Cart类。我想要做的事情(希望!)应该很简单......但我正在努力。
在产品页面上,我有一个“添加到购物车”的按钮。我想要发生的是,当项目已经在购物车中时,按钮会变为“从购物车中移除”。
<? //if(**not in cart**) { ?>
<a href="<?=base_url()?>jobs/addjob/<?=$row->id?>">Add to cart</a>
<? } else { ?>
<a href="<?=base_url()?>jobs/removejob/<? /**cart 'rowid'**/ echo $rowid?>">Remove from cart</a>
<? } ?>
如何查询购物车以查看该商品是否存在并获取'rowid'以便我可以将其用于删除功能?
非常感谢!
答案 0 :(得分:1)
我遇到了类似的问题 - 我通过扩展带有2个新函数的CI_Cart库 - in_cart()和all_item_count()来解决这个问题。
<?php
class MY_Cart extends CI_Cart {
function __construct()
{
parent::__construct();
$this->product_name_rules = '\d\D';
}
/*
* Returns data for products in cart
*
* @param integer $product_id used to fetch only the quantity of a specific product
* @return array|integer $in_cart an array in the form (id => quantity, ....) OR quantity if $product_id is set
*/
public function in_cart($product_id = null) {
if ($this->total_items() > 0)
{
$in_cart = array();
// Fetch data for all products in cart
foreach ($this->contents() AS $item)
{
$in_cart[$item['id']] = $item['qty'];
}
if ($product_id)
{
if (array_key_exists($product_id, $in_cart))
{
return $in_cart[$product_id];
}
return null;
}
else
{
return $in_cart;
}
}
return null;
}
public function all_item_count()
{
$total = 0;
if ($this->total_items() > 0)
{
foreach ($this->contents() AS $item)
{
$total = $item['qty'] + $total;
}
}
return $total;
}
}
/* End of file: MY_Cart.php */
/* Location: ./application/libraries/MY_Cart.php */
答案 1 :(得分:0)
您可以检查您的模型是否存在您要检查的工作名称或任何内容。如果存在,则显示删除按钮,否则显示添加。