negar_a 1 گزارش دادن ارسال شده در خرداد 99 سلام دوستان . مشکل کد من چیه که جواب نمیده . در یک صفحه اینو دارم : <input type="text" id="fname"> <button type="button" id="regist" class="btn btn-warning">getrequest</button> و این کد اجاکس رو نوشتم . میخوام بعنوان تست ، وقتی روی button کلیک میکنم ، مقداری که درون فیلد وارد کردم نشون بده . <script type="text/javascript"> $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); $(document).ready(function() { $('#regist').click(function () { var fname = $('#fname').val(); $.ajax({ type:'POST', url:"{{ url('/regist') }}", data:{fname:fname}, success:function(data){ alert(data.success); } }); }); }); </script> و کدی که در web.php نوشتم اینه : Route::post('/regist', function () { if((new Illuminate\Http\Request)->ajax()){ return Response::json((new Illuminate\Http\Request)->all()); } }); وقتی کلیک میکنم در alert کلمه ی undefined رو نمایش میده نقل قول Share this post Link to post Share on other sites
Amir_Kh1984 17 گزارش دادن ارسال شده در خرداد 99 سلام ابتدا مسیر (route) درخواست را بصورت زیر تغییر دهید. Route::get('/regist', function (Illuminate\Http\Request $request) { if($request->ajax()) return \Illuminate\Support\Facades\Response::json($request->all()); return \Illuminate\Support\Facades\Response::json(false); }); توضیح اینکه اولا از متد get استفاده کنید. ثانیا شی request$ را به عنوان آرگومان تابع (Closures) قرار دهید. حال تابع ajax را بصورت زیر ویرایش کنید. $.ajax( { type : 'get', url : "{{ url('/regist') }}", data : { fname : fname }, success : function(data) { alert(data.fname); } }); از متد get استفاده کنید و در بدنه تابع success با استفاده از آرگومان data فقط به مقادیری دسترسی خواهید داشت که آنها را به سرور ارسال کردید.(کاملا مشخه که دسترسی به مقداری که وجود نداره undefined هست!) امیدوارم که این پاسخ مشکل شما را برطرف کرده باشد. موفق باشید. 1 نقل قول Share this post Link to post Share on other sites
negar_a 1 گزارش دادن ارسال شده در خرداد 99 خیلی ممنونم . بله نتیجه داد . حالا من برای پروژه ام تغییراتی در این کد دادم . به این صورت که وقتی تعداد محصولات انتخاب و تغییر داده میشه ابتدا اون مقدار رو بهمون نشون بده ( دارم مرحله به مرحله پیش میرم که یادگیریم بهتر بشه ) <input type="number" step="1" max="5" min="1" id="quantity" data-stepper-debounce="400" class="js-stepper form-control" value='1'> کد اجاکس : $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); $(document).ready(function() { $( "#quantity" ).change(function () { var quantity = $("#quantity").val(); $.ajax( { type : 'post', url : "{{ url('/basket-post') }}", data : { quantity : quantity }, success : function(data) { alert(data.quantity); } }); }); }); و route : Route::post('/basket-post' , 'OrderController@basketPost')->name('basket.post'); و کنترلر : public function basketPost(Request $request) { if($request->ajax()){ return Response::json($request->all()); }else{ return Response::json(false); } } تا اینجا درست کار میکه و وقتی روی quentity کلیک میکنم تعداد اون رو بهم میده . اما تعداد سطرها بیش از یکی هست و این سطر ممکنه تکرار بشه . بخاطر همین فقط نتیجه ی سطر اول رو برمیگردونه و بقیه بی نتیجه هست بخاطر همین ایدی اون سطر رو هم به اسمش اضافه کردم اما نمیدونم چطور در اجاکس دریافت کنم هر سطر با ایدی منحصرش . <input type="number" step="1" max="5" min="1" id="quantity{{$details['id']}}" data-stepper-debounce="400" class="js-stepper form-control" value='1'> و مسله ی دوم اینکه میخوام مقدار هر کدوم رو در کنترلر در متغیر بریزم تا ازش استفاده کنم . به این شکل نوشتم undefined برمیگردونه return Response::json(['quantity'])->getData(); ممنون از پاسخ گویی تون نقل قول Share this post Link to post Share on other sites