当我将一些产品添加到购物车时出现问题,但是当我想要获取购物车的内容时,我发现它是空的。
这是我的控制者:
public function add_to_cart(){
$insert_data = array(
'id' => $this->input->post('id'),
'name' => $this->input->post('name'),
'price' => $this->input->post('price'),
'qty' => $this->input->post('qty') );
// This function add items into cart.
$this->cart->insert($insert_data);
}
这是我将新产品添加到购物车的表单:
<div class="button-group">
<form method="POST" action="<?php echo base_url().'add_to_cart'; ?>">
<div style="display:none">
<input type="hidden" name="<?php echo $this->security->get_csrf_token_name(); ?>" value="<?php echo $this->security->get_csrf_hash();?>" />
</div>
<input type="hidden" name="<?php echo $this->security->get_csrf_token_name(); ?>" value="<?php echo $this->security->get_csrf_hash(); ?>">
<input type="number" name="qty" id="<?php echo $ligneBase->id;?>">
<input type="hidden" name="name" value="<?php echo $ligneBase->name;?>">
<input type="hidden" name="price" value="<?php echo $ligneBase->price;?>">
<input type="hidden" name="id" value="<?php echo $ligneBase->id;?>">
<input class="add_cart" type="submit" value="Add to cart">
<div class="add-to-links">
</form>
</div>
这是我在header.php中的购物车:
<table class="table">
<tbody>
<div id="text">
<?php $cart_check = $this->cart->contents();
// If cart is empty, this will show below message.
if(empty($cart_check)) {
echo '<h4 align="center">No Product in cart, To add products to your shopping cart click on "Add to Cart" Button</h4>';
} ?>
</div>
<?php
$cart = $this->cart->contents();
foreach($cart as $indice => $ligneBase){
?>
<tr>
<td class="text-center"><a href="product.html"><img class="img-thumbnail" title="Xitefun Causal Wear Fancy Shoes" alt="Xitefun Causal Wear Fancy Shoes" src="image/product/sony_vaio_1-50x50.jpg"></a></td>
<td class="text-left"><a href="product.html"><?php echo $ligneBase->id;?></a></td>
<td class="text-right">x 1</td>
<td class="text-right"><?php echo $ligneBase->name;?> </td>
<td class="text-center"><button class="btn btn-danger btn-xs remove" title="Remove" onClick="" type="button"><i class="fa fa-times"></i></button></td>
</tr>
<?php
}
?>
</tbody>
</table>
答案 0 :(得分:0)
我的代码训练
我的控制器
public function workout()
{
if($this->input->post())
{
//echo "<pre>"; print_r($this->input->post());
$insert_data = array(
'id' => $this->input->post('id'),
'name' => $this->input->post('name'),
'price' => $this->input->post('price'),
'qty' => $this->input->post('qty') );
$this->cart->insert($insert_data);
echo "<pre>"; print_r($this->cart->contents());
exit();
}
$this->load->view('workout');
}
我的观点
<form method="POST" action="<?php echo base_url().'welcome/workout'; ?>">
<input type="number" name="qty" id="1002">
<input type="hidden" name="name" value="Mobile">
<input type="hidden" name="price" value="300">
<input type="hidden" name="id" value="1002">
<input class="add_cart" type="submit" value="Add to cart">
<div class="add-to-links">
</form>
我的输出是
Array
(
[fba9d88164f3e2d9109ee770223212a0] => Array
(
[id] => 1002
[name] => Mobile
[price] => 300
[qty] => 24
[rowid] => fba9d88164f3e2d9109ee770223212a0
[subtotal] => 7200
)
)
工作正常
并且您的错误在于显示foreach
<table class="table">
<tbody>
<div id="text">
<?php $cart_check = $this->cart->contents();
// If cart is empty, this will show below message.
if(empty($cart_check)) {
echo '<h4 align="center">No Product in cart, To add products to your shopping cart click on "Add to Cart" Button</h4>';
} ?>
</div>
<?php
$cart = $this->cart->contents();
foreach($cart as $indice => $ligneBase){
?>
<tr>
<td class="text-center"><a href="product.html"><img class="img-thumbnail" title="Xitefun Causal Wear Fancy Shoes" alt="Xitefun Causal Wear Fancy Shoes" src="image/product/sony_vaio_1-50x50.jpg"></a></td>
<td class="text-left"><a href="product.html"><?php echo $ligneBase->id;?></a></td>
<td class="text-right">x 1</td>
<td class="text-right"><?php echo $ligneBase->name;?> </td>
<td class="text-center"><button class="btn btn-danger btn-xs remove" title="Remove" onClick="" type="button"><i class="fa fa-times"></i></button></td>
</tr>
<?php
}
?>
</tbody>
</table>
将其更改为
<table class="table">
<tbody>
<div id="text">
<?php $cart_check = $this->cart->contents();
// If cart is empty, this will show below message.
if(empty($cart_check)) {
echo '<h4 align="center">No Product in cart, To add products to your shopping cart click on "Add to Cart" Button</h4>';
} ?>
</div>
<?php
$cart = $this->cart->contents();
foreach($cart as $indice => $ligneBase){
?>
<tr>
<td class="text-center"><a href="product.html"><img class="img-thumbnail" title="Xitefun Causal Wear Fancy Shoes" alt="Xitefun Causal Wear Fancy Shoes" src="image/product/sony_vaio_1-50x50.jpg"></a></td>
<td class="text-left"><a href="product.html"><?php echo $ligneBase['id'];?></a></td>
<td class="text-right">x 1</td>
<td class="text-right"><?php echo $ligneBase['name'];?> </td>
<td class="text-center"><button class="btn btn-danger btn-xs remove" title="Remove" onClick="" type="button"><i class="fa fa-times"></i></button></td>
</tr>
<?php
}
?>
</tbody>
</table>
答案 1 :(得分:0)
我可以建议您的代码结构稍微改进一下。您需要使用模型进行数据库交互
<强>步骤1。控制器功能
public function cart()
{
$data['cart_items']=$this->cart_model->getCartItems();
if($_POST)
{
// Perform Validation
if($this->form_validation->run()==false)
{
$data['errors']=validation_errors();
$this->load->view('cart_view',$data);
}
else
{
$row=$this->cart_model->insertToCart($this->security->xss_clean($_POST));
if($row)
{
$data['success']='Item Added';
$this->load->view('cart_view',$data);
}
else
{
$data['error']='Item Could not be Added';
$this->load->view('cart_view',$data);
}
}
}
else
{
$this->load->view('cart_view',$data);
}
}
<强>步骤2。模型函数
public function getCartItems()
{
$sql='create query';
return $this->db->query($sql)->result_array();
}
public function insertToCart($data)
{
$item=array(
'field' => $data['index']
);
$this->db->insert('cart',$item);
return $this->db->insert_id();
}
<强>步骤3。图强>
<div class="button-group">
<form method="POST" action="">
<input type="hidden" name="<?php echo $this->security->get_csrf_token_name(); ?>" value="<?php echo $this->security->get_csrf_hash();?>" />
<input type="hidden" name="<?php echo $this->security->get_csrf_token_name(); ?>" value="<?php echo $this->security->get_csrf_hash(); ?>">
<input type="number" name="qty" id="<?php echo $ligneBase->id;?>">
<input type="hidden" name="name" value="<?php echo $ligneBase->name;?>">
<input type="hidden" name="price" value="<?php echo $ligneBase->price;?>">
<input type="hidden" name="id" value="<?php echo $ligneBase->id;?>">
<input class="add_cart" type="submit" value="Add to cart">
<div class="add-to-links">
</form>
</div>