Ajax loading Laravel Shoppincart - PullRequest
       1

Ajax loading Laravel Shoppincart

0 голосов
/ 02 ноября 2018

Эта проблема относительно сложна, хотя бы, чтобы объяснить.

Я настраиваю Ajax для быстрой работы с моим плагином Crinsane ShoppingCart для Laravel. Мой интерфейс позволяет вам купить товар из списка товаров. Это делается с помощью Ajax и работает нормально. Когда товар вставлен в вашу корзину, в нижней части появляется небольшая панель со всем содержимым корзины. Здесь есть форма для отправки (просто пустой ввод), где вы можете ввести желаемое количество каждого продукта. Со мной так далеко? Я получаю содержимое корзины с помощью другой функции AJAX, которая также отлично работает. Проблема заключается в вводе обновления пустого количества в нижней панели. Это работает, но только после того, как я обновил страницу. Когда я набираю нужное количество в поле ввода, ничего не происходит. Но когда я обновляю его, он работает так, как я хочу.

Я подозреваю, что сессия Cart или что-то еще должно быть должным образом загружено обновлением, прежде чем какие-либо функции Ajax с активным вводом смогут начать работу. Хотя это кажется странным, учитывая, что в этом весь смысл ajax.

Мой Ajax (для ввода нижней строки):

<?php
 for($i=0;$i<$cartAmount; $i++){
?>

 var _token = $("input[name='_token']").val();
 function insert_cartBar(qty = '')
  {
   $.ajax({
   url: '<?php echo url('/cart/bar');?>/'+ $('#cart-product-id-<?php echo 
   $i;?>').val(),
   method:'POST',
  data:{
     qty:qty,
    _token:_token,
    rowId: $('#cart-bar-id-<?php echo $i;?>').val(),
    id: $('#cart-product-id-<?php echo $i;?>').val(),

  },
  dataType:'json',
  success:function(data)
  {
    $('#cartResult').text(data.cartCount);
   console.log('eyyy' + data.rowId);
  },
  error: function(data) {
    var errors = data.responseJSON;
    console.log(errors);
  },
});
}
    $(document).on('keyup', '#cart-<?php echo $i?>', function(){
    var qty = $(this).val();
    insert_cartBar(qty);
  });

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

       public function cartBarPost(Request $request, $id) {

         $cartContent = Cart::content();
      $product = Product::find($id);

        $rowId = $request->rowId;
        $qty = $request->qty;

      if($qty != '') {

        Cart::update($rowId, $qty);

       }
        $cartCount = Cart::count();


       $data = array(
           'cartCount' => $cartCount,
          'id' => $id,
           'rowId' => $rowId,

            'qty' => $qty,
       );
       echo json_encode($data);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...