2015-01-28 4 views
0

Я использую ajax для обновления catignign cart. Моя проблема заключается в том, когда я добавляю несколько элементов в корзину & обновляет количество элементов, количество которых не изменяется. Он работает только для последнего добавленного элемента.Ajax не обновляет корзину - Codeigniter

ниже мой код

<form id="columnarForm" name="columnarForm" enctype="multipart/form-data" method="post"> 
<table width="100%" align="center" cellpadding="0" cellspacing="0" class="table-responsive table-bordered table-hover"> 
<tbody> 
<?php foreach($products as $product){ ?> 

<tr> 
<td align="right" valign="middle"> 
<input readonly type="text" name="name" value="<?php echo $product['name'] ?>"/> 
</td> 
<td align="right" valign="middle"> 
<input readonly type="text" name="price" value="<?php echo $product['price'] ?>"/> 
</td> 
<td align="right" valign="middle"> 
<input type="text" name="qty" value="<?php echo $product['qty'] ?>"/> 
<input type="button" class="btn btn-primary btn-xs change" value="Change" /> 
</td> 

<input type="hidden" name="rowid" value="<?php echo $product['rowid'] ?>"/>   

</tr> 

<script type="text/javascript"> 
$(function(){ 
    $('.change').click(function(){ 

     $.ajax({ 
      type: "POST", 
      url: "<?php echo base_url()?>update-shopping-cart", 
      data: $("#columnarForm").serialize(), 
      beforeSend: function(){ 
       $('#result').html('<img src="<?php echo site_url('assets/images/loading.gif'); ?>" class="center-block" />'); 
      }, 
      success: function(data){ 
       $('#result').html(data); 
      } 
     }); 
    }); 
}); 
</script>    

<? } ?> 
</tbody> 
</table> 

</form> 

Мой контроллер

// Updated the shopping cart 
     function updateCart(){ 
     $data = array(
       'rowid' => $this->input->post('rowid'), 
       'qty'  => $this->input->post('qty'), 
     ); 

     // Update the cart with the new information 
     $this->cart->update($data); 
     redirect(base_url().'update-cart-view'); 
     } 
+0

Можете ли вы опубликовать свою функцию обновления с вашей модели? – Alexey

+0

Я хочу спросить, можно ли добавлять новые товары в корзину во время обновления? –

ответ

1

Вы перекручивание через свои продукты и настройки всех имен ввода быть то же самое:

<td align="right" valign="middle"> 
<input readonly type="text" name="name" value="<?php echo $product['name'] ?>"/> 
</td> 
<td align="right" valign="middle"> 
<input readonly type="text" name="price" value="<?php echo $product['price'] ?>"/> 
</td> 
<td align="right" valign="middle"> 
<input type="text" name="qty" value="<?php echo $product['qty'] ?>"/> 

Так вы в конечном итоге с x сумма «имя» s, x сумма «цена "s и x количество" штук ". И ваш код захватывает элемент «имя» с «ценой» с «qty». При отправке, поскольку все входы находятся в одной форме, вы отправляете ВСЕ информацию, но обрабатываете только один набор.

Либо использовать 'rowid' с каждым именем элемента - 'price_rowid', 'name_rowid' и 'qty_rowid', так что вы можете перебрать все значения, или цикл через все почтовые данные на кнопку.

+0

Спасибо @Alexey ... –

Смежные вопросы