Как можно исправить проблему с обновлением корзины с кодом - PullRequest
0 голосов
/ 07 января 2019

Я не могу обновить корзину на странице оформления заказа. Я не знаю, что происходит. Вот мой код.

function update_cart()
{
  $rowid =$this->input->post('rowid');
  $price =$this->input->post('price');
  $qty = $this->input->post('qty');
  $pr = preg_replace( '/,/', '', $price);
  $amount = $pr * $qty;
  $data = array(
    'rowid' => $rowid,
    'price' => $price,
    'amount' => $amount,
    'qty' => $qty
  );
  $this->cart->update($data);
     redirect('checkout');
}

Вот мой код просмотра автомобиля. Я пытаюсь обновить значение корзины здесь. Не отображается ошибка. Я не могу решить. Любая помощь. Только обновление корзины не работает. Другие функции работают хорошо. Добавить в корзину удалить в корзину, но обновление в корзину не работает. Я создаю сеансовую таблицу, а также пробую другое предложение и переполнение стека формы решения.

    <form action="<?=base_url()?>cart/update_cart" method="post">
            <div class="panel panel-info">
                <div class="panel-heading">
                    <div class="panel-title">
                        <div class="row">
                            <div class="col-xs-6">
                                <h5><span class="glyphicon glyphicon-shopping-cart"></span> Shopping Cart</h5>
                            </div>
                            <div class="col-xs-6">
                                <a href="<?=base_url()?>">
                                <button type="button" class="btn btn-primary btn-sm btn-block">
                                    <span class="glyphicon glyphicon-share-alt"></span> Continue shopping
                                </button>
                                </a>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="panel-body">
                <?php $i = 1; ?>
                <?php 
                //print_r($this->cart->contents() );
                //die;
                foreach ($this->cart->contents() as $items): ?>
                <?php echo form_hidden($i.'[rowid]', $items['rowid']); ?>

                    <div class="row">
                        <div class="col-xs-2">
                        <img class="img-responsive" src="<?=base_url()?>uploads/product/<?=$items['image'];?>" />
                        </div>
                        <div class="col-xs-4">
                            <h5 class="product-name">
                            <strong><?php echo $items['name']; ?>
                            </strong>
                            <?=$items['options'];?>
                            </h5>

                        </div>
                        <div class="col-xs-6">
                            <div class="col-xs-6 text-right">
                                <h6><strong><?= $this->cart->format_number($items['price']); ?>
                                <span class="text-muted">x</span></strong></h6>
                            </div>
                            <div class="col-xs-4">
                                <?php //echo form_input(array('name' => $i.'[qty]', 'value' => $items['qty'], 'size' => '1')); ?>
                            <input  type="text" name="qty" min="1" value="<?=$items['qty'] ?>" maxlength="1" style="width: 50%;">
                            <input type="hidden" name="price" value="<?=$items['price'] ?>">
                            <input type="hidden" name="name" value="<?=$items['name'] ?>">
                            <input type="hidden" name="description" value="<?=$items['description'] ?>">
                            </div>
                            <div class="col-xs-2">
                                <a href="<?=base_url()?>cart/remove/<?=$items['rowid']?>">
                                <button type="button" class="btn btn-link btn-xs">
                                    <span class="glyphicon glyphicon-trash" onclick="confirm('Are you sure want to delete')";> </span>
                                </button>
                                </a>
                            </div>
                        </div>
                    </div>
                    <hr>


<?php $i++; ?>

<?php endforeach; ?>

1 Ответ

0 голосов
/ 07 января 2019

при просмотре .... используйте только два ввода

   <input  type="text" name="qty[]" min="1" value="<?=$items['qty'] ?>" maxlength="1" style="width: 50%;">
<input type="hidden" name="rowid[]" value="<?=$items['rowid'] ?>">

на контроллере

вам нужно изменить количество, только если вы собираетесь обновить корзину

    function update_cart()
{
for ($i=0; $i < count($_POST) - 1; $i++) { 
        $data = array(
            'rowid' => $_POST['rowid'][$i],
            'qty'   => $_POST['qty'][$i]
      );

    $this->cart->update($data);
      }
 redirect('checkout');
}
...