我试图根据选中的复选框将多个项目添加到购物车中 让我们直截了当。
视图
<table width="100%" id="product-row">
<tr>
<td>ID </td>
<td>DESCRIPTION</td>
<td style="width:200px">ACTION</td>
</tr>
<tr>
<?php
$attr=array('id'=>'add-item');
echo form_open('cart/add_piece',$attr);
?>
<?php foreach($product->result_array() as $p) : ?>
<td>
<p>
<?php echo $p['ITEMNO'];?>
</p>
</td>
<td>
<p>
<?php echo $p['DESCRIPTION']?>
</p>
</td>
<td>
<?php echo form_input(array('name' => 'quantity[]', 'value' => '1', 'maxlength' => '5', 'size' => '5','class' => 'quantity textbox', 'placeholder'=>'0')); ?>
<input type ="hidden" name="description[]" value="<?php echo $p['DESCRIPTION']?>"></input>
<input type="checkbox" value="<?php echo $p['ITEMNO'];?>" name="itemno[]">Ambil</input>
</td>
</tr>
<?php endforeach;?>
</table>
<input class="btn_pro_bypcs" type="image" src="<?php echo base_url();?>assets/images/green-add.png" id="submit" alt="Add To Cart" width="70" height="30"/>
<?php echo form_close();?>
控制器:
function add_piece()
{
if($this->session->userdata('logged_in'))
{
if($this->item_model->validate_add_item_piece()== TRUE)
{
if($this->input->post('ajax') != 1)
{
redirect('cart');
}
else
{
echo "Item Added";
}
}
}
else
{
echo "<div style='background-color:red;'>Failed to add item!</div>";
}
}
模特:
$itemno=$this->input->post('itemno');
$quantity = $this->input->post('quantity');
$desc=$this->input->post('description');
foreach($itemno as $i)
{
for($i=0;$i< count($itemno);$i++)
{
$data= array(
'id' => $itemno[$i],
'name' => $desc[$i],
'qty' => $quantity[$i],
'price' => 1
);
$this->cart->insert($data);
}
return TRUE;
}
php工作正常,但是 问题是,如何使用jquery将项目添加到购物车中?
答案 0 :(得分:1)
这样就可以了。在循环外实现逻辑
$("#submit").click(function() {
var cart = [];
$("input[type='checkbox']").each(function() {
if($(this).is(":checked")) {
console.log("Insert inside an array & push : "+$(this).val());
cart.push($(this).val());
}
});
// your logic to process the cart array
});
现在你只需要遍历购物车数组并构建项目html DOM并将其添加到购物车。