【问题标题】:Pass route parameter from jquery variable in blade view在刀片视图中从 jquery 变量传递路由参数
【发布时间】:2019-01-19 22:19:00
【问题描述】:

如何在ajaxurl'product_id' => ????中添加delete_id = $(this).attr('delete_id');jquery变量

我有这条路线: Route::delete('/{store}/{table_name}_{table_id}/{receipt_id}/shop/cart/{product_id}', 'Cart\CartController@destroy')->name('cart.destroy');

还有这个 ajax:

 $(document).on('submit','#cartItem_delete',function(e){
        delete_id = $(this).attr('delete_id');
         var form_data = $(this).serialize(); //prepare form data for Ajax post
        $.ajax({
          type: "DELETE",
          url: '{{ route('cart.destroy', ['product_id' => ????, 'store' => $store, 'table_name' => $table_name, 'table_id' => $table_id, 'receipt_id' => $receipt_id]) }}',
          dataType:"json", //expect json value from server
          data: form_data
        }).done(function(data){ //on Ajax success    
                $('tr[row='+delete_id+']').remove();
                $('.cart-button a span').text(data.count);
                if (data.count < 1) {
                    $('.container #cartContainer').remove();
                    location.reload();
                }
        });
        e.preventDefault();
    });

html 表单位于 foreach 语句中(对于购物车中的每一行),行 ID 位于 delete_id 属性中:

<form id="cartItem_delete" delete_id="{{ $item->rowId }}" class="side-by-side">
                                {!! csrf_field() !!}
                                <input type="hidden" name="_method" value="DELETE">
                                <button type="submit" class="btn btn-danger btn-sm" value="Remove">Remove</button>
                            </form>

【问题讨论】:

    标签: php jquery ajax laravel laravel-blade


    【解决方案1】:

    你有两个选择

    1. 将值作为 ajax 参数传递,然后您需要更改路由和控制器
    2. 您构建 url 并通过 javascript 附加 id

    url: "{{url('/')}}/{{$store}}/{{$table_name}}/{{$receipt_id}}/shop/cart/"+delete_id

    【讨论】:

      【解决方案2】:

      您可以使用 url 将 action 属性添加到表单:

      <form action="{{ route('cart.destroy', ['product_id' => $item->rowId, 'store' => $store, 'table_name' => $table_name, 'table_id' => $table_id, 'receipt_id' => $receipt_id]) }}"...
      

      然后在提交事件中获取url:

      var action_url = $( this ).attr('action')
      

      并将其传递给 ajax:

      $.ajax({
          url: action_url
      

      【讨论】:

        猜你喜欢
        • 2014-08-23
        • 1970-01-01
        • 2015-03-02
        • 2022-01-01
        • 2019-08-12
        • 1970-01-01
        • 2020-06-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多