آفلاین
user-avatar

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

2 سال پیش
توسط محمود آپدیت شد
آفلاین
user-avatar
محمود ( 654 تجربه )
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 بریزم ؟)

آفلاین
user-avatar
developer ( 33462 تجربه )
2 سال پیش
تخصص : برنامه نویس

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

آفلاین
user-avatar
محمود ( 654 تجربه )
2 سال پیش

به صورت 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');
برای ارسال پاسخ باید وارد سایت شوید