محمود
6 سال پیش توسط محمود مطرح شد
2 پاسخ

ارسال اطلاعات با ایجکس

سلام خدمت دوستان عزیز.
من یکسری محصولات دارم که قیمت ثابتی دارند و به راحتی با ایجکس به سبد خرید اضافه می شوند.
حالا یکسری محصول دارم که با توجه به وزن کالا قیمت متفاوتی دارند.
حالا اطلاعاتی که از select box گرفتم

  let weight = $("#weight{{$product->id}} option:selected").val();

چطوری به url زیر در ایجکس پاس بدم ؟

 url: '{{url('cart/add',['id' => $product->id,'qty' => 1])}}',

HTML

                  @foreach($products as $product)
                        <div class="card  product ml-2 mb-sm-3 ">
                          <img class="card-img-top" height="150" src="{{$product->images['thumb']}}" class="img-fluid" alt="{{$product->image_alt}}" title="{{$product->image_tag}}">
                          <div class="card-body">
                            <h5 class="card-title"><a href="{{$product->path()}}">{{$product->title}}</a></h5>
                            <p class="card-text">{{$product->subtitle}}</p>   
                           </div>
                           @if($product->new_price !=null)
                                <span>یک کیلو گرم</span>
                            <p class="form-control-sm"> <small> {{$product->new_price}} ریال</small></p>
                            @elseif(count($product->weights))

                                <div class="form-group">
                                    <select class="form-control-sm" id="weight{{$product->id}}">
                                        @foreach($product->weights as $weight)
                                        <option value="{{ $weight->id }}">{{$weight->name}} -  {{$weight->pivot->new_prices}} ریال</option>
                                        @endforeach
                                    </select>
                                </div>

                             @endif

                          <form action="#" class="cardform">
                                <div class="d-flex justify-content-center align-items-center text-light my-2">.
                                       <span class="ti-plus bg-success p-1"></span>
                                       <input type="text" class="form-control form-control-sm w-25 mx-2 text-center" value="1">
                                       <span class="ti-minus bg-success p-1 text-light"></span>
                                </div>
                                <p class="form-control-sm">جمع  :  <small>10000 ریال</small></p>
                                   <button id="addToCart{{$product->id}}" type="submit" class="btn btn-outline-warning mb-2">افزودن به سبد خرید</button>
                            </form>                         
                        </div>
                        @endforeach

Script

            $('#addToCart{{$product->id}}').on('click', function (e) {
                e.preventDefault();

                @if(count($product->weights))
                   let weight = $("#weight{{$product->id}} option:selected").val();
                @endif

                $.ajax({
                    url: '{{url('cart/add',['id' => $product->id,'qty' => 1])}}',
                    type: 'get',
                    success: function (response) {
                        console.log(response);
                        $('#sidebar').load('{{url('cart/sidebar')}}');
                    }
                });
            });

Route

Route::get('cart/add/{id}/{qty}/{weight?}','CartController@addItem');

(چطوری یک متغیر از جاوا اسکریپت رو داخل متغیر php بریزم ؟)


ثبت پرسش جدید
developer
تخصص : برنامه نویس
@developer 6 سال پیش مطرح شد
1

به صورت POST بفرست


محمود
@gt.libertine 6 سال پیش آپدیت شد
0

به صورت POST :
Script


                $('#addToCart{{$product->id}}').on('click', function (e) {
                    e.preventDefault();

                    @if(count($product->weights))
                       var weight = $("#weight{{$product->id}} option:selected").val();
                    @endif

                    $.ajax({
                        url: '{{url('cart/add')}}',
                        type: 'post',
                        data : {
                            id : '{{$product->id}}',
                            qty : 1,
                            @if(count($product->weights))
                                weight : weight,
                           @endif
                           _token: '{{ csrf_token() }}'
                        },
                        success: function (response) {
                            console.log(response);
                            $('#sidebar').load('{{url('cart/sidebar')}}');
                        }
                    });
                });

Route

Route::post('cart/add','CartController@addItem');

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام