朋友们,我正在开发一个电子商务网站(使用Codeigniter)。
在客户填写产品数量并点击“购买”后,只有带有“数量”字段的产品才能填入购物车。你能救我吗?
HTML:
<form>
<ul class="products-list">
<li class="product">
<input type="hidden" class="product_id" value="1">
<span class="product-name">Product 1</span>
<span class="product-value">$ 100</span>
<span>Qnt. <input type="text" class="quantity"></span>
</li>
<li class="product">
<input type="hidden" class="product_id" value="2">
<span class="product-name">Product 2</span>
<span class="product-value">$ 100</span>
<span>Qnt. <input type="text" class="quantity"></span>
</li>
</ul>
<button>Buy</button>
</form>
<小时/> 的 jQuery的:
$.ajax({
url: '/cart/add/'+product_id+'/'+quantity,
type: 'GET',
success: function( data ){
if ( data != false ) {
window.location.reload();
}
}
});
<小时/> 我的PHP代码:
public function addItem( $product_id, $quantity){
$product = $this->Produto_model->getById($product_id);
$this->carrinho->setItem($product, $quantity);
echo json_encode($this->carrinho);
}
答案 0 :(得分:0)
试试这个
HTML:
<form id="form-cart">
<ul class="products-list">
<li class="product">
<input type="hidden" class="product_id" value="1">
<span class="product-name">Product 1</span>
<span class="product-value">$ 100</span>
<span>Qnt. <input type="text" class="quantity" value="1"></span>
</li>
<li class="product">
<input type="hidden" class="product_id" value="2">
<span class="product-name">Product 2</span>
<span class="product-value">$ 100</span>
<span>Qnt. <input type="text" class="quantity" value="1"></span>
</li>
</ul>
<button id="form-cart-btn">Buy</button>
</form>
<script type="text/javascript">
$("#form-cart #form-cart-btn").click(function(){
form = $("#form-cart");
items = [];
form.find('li').each(function(i, e){
_e = $(e);
qty = parseInt(_e.find('.quantity').val());
if(isNaN(parseFloat(qty)) || ! isFinite(qty) || qty == 0)
return;
id = _e.find('.product_id').val();
items.push('item[' + id + ']=' + qty);
});
items = items.join('&');
$.ajax({
url: '/cart/add/?' + items,
dataType: 'json',
success: function(response)
{
if(response.status != 'success')
return false;
window.location.reload();
}
});
return false;
});
</script>
购物车控制器:
class Cart extends CI_Controller
{
public function add()
{
$items = isset($_GET['items']) ? $_GET['items'] : array();
foreach($items as $product_id => $qty)
{
$product = $this->Produto_model->getById($product_id);
if( ! $product)
{
++$i;
continue;
}
$this->carrinho->setItem($product, $qty);
++$i;
}
header("Content-type: application/json");
echo json_encode(array('status'=>'success'));
exit();
}
}