HASSSSAN 0 گزارش دادن ارسال شده در فروردین 99 سلام من میخوام برای نمایش لیست اعضای یه کلاس از Yajra Datatables استفاده بکنم ولی برای ارسال و دریافت داده ازش به مشکل خوردم. ببینید اگر مسیر اینطوری باشه: Route::GET('/members', 'ClassController@member')->name('class.member'); و اینطوری بریم به مسیر: <a href="{{route('message.list')}}" class="btn btn-lg btn-block btn-success">Messages</a> درست کار میکنه! ولی خب واضحه که من نیاز دارم id کلاس رو هم pass بکنم. وقتی مسییر رو به این شکل تغییر میدم: Route::GET('/members/{id}', 'ClassController@member')->name('class.member'); این ایرور رو به صورت alert نمایش میده DataTables warning: table id=student_table - Invalid JSON response. سعی هم کردم که ایرور ajax رو چک بکنم ولی چیز خاصی نصیبم نشد. و مشکل بعدی هم اینه که باید id کلاس رو هم برای دریافت داده هم برای عملیات حذف ارسال بکنم! البته اولش باید بتونم بفرستمش برای view. <script type="text/javascript"> $(document).ready(function () { $('#student_table').DataTable({ "processing": true, "serverSide": true, "ajax": "{{route('class.member_list')}}", "columns": [{"data": "first_name", orderable: true, searchable: true}, {"data": "last_name", orderable: true, searchable: true}, {"data": "email", orderable: false, searchable: false}, {"data": "created_at", orderable: true}, {"data": "action", orderable: false, searchable: false} ] }); $(document).on('click', '.delete', function () { var id = $(this).attr("id"); console.log(id); const swalWithBootstrapButtons = Swal.mixin({ customClass: { confirmButton: 'btn btn-success', cancelButton: 'btn btn-danger' }, buttonsStyling: false }) swalWithBootstrapButtons.fire({ title: 'Are you sure?', text: "You won't be able to revert this!", icon: 'warning', showCancelButton: true, confirmButtonText: 'Yes, delete it!', cancelButtonText: 'No, cancel!', reverseButtons: true }).then((result) => { if (result.value) { $.ajax({ url: "{{route("class.delete_member")}}", method: "get", data: {id: id}, success: function (data) { $('#student_table').DataTable().ajax.reload(); }, error: function (data) { console.log('Error:', data); } }) swalWithBootstrapButtons.fire( 'Deleted!', 'Your file has been deleted.', 'success' ) } else if ( result.dismiss === Swal.DismissReason.cancel ) { swalWithBootstrapButtons.fire( 'Cancelled', 'Your imaginary file is safe :)', 'error' ) } }) }); }) </script> اگر قسمت دیگه ای از کد هم نیازه لطفا بگید که بذارم. پیشاپیش از هر کمکی تشکر میشود نقل قول Share this post Link to post Share on other sites
saber 143 گزارش دادن ارسال شده در فروردین 99 احتمال زیاد مشکل از متد کنترلر هست که اطلاعات رو باید به شکل json برگردونه کدهایی رو که در کنترلر برای دریافت لیست اعضا نوشتید قرار بدید ببینیم چی نوشتید 1 نقل قول Share this post Link to post Share on other sites
HASSSSAN 0 گزارش دادن ارسال شده در فروردین 99 route: Route::GET('/members/{id}', 'ClassController@member')->name('class.member'); Route::GET('members/list', 'ClassController@member_list')->name('class.member_list'); link: <a href="{{route('class.member', ['id' => $class->id])}}" class="btn btn-lg btn-block btn-success">Members</a> کنترلر: public function member($id) { $class = Classroom::where('id', $id)->first(); return view('class.Show_Member', compact('class')); } public function member_list(Request $request) { $user = \DB::table('scs') ->join('users', 'scs.user_id', '=', 'users.id') ->where('classroom_id', $request->input('id')) ->get(); return DataTables::of($user) ->addColumn('action', function ($user) { return '<a href="#" class="btn btn-xs btn-danger delete" id=" ' . $user->id . ' ">Delete</a>'; }) ->make('true'); } script: <script type="text/javascript"> $(document).ready(function () { var id={{$class->id}}; $('#student_table').DataTable({ "processing": true, "serverSide": true, "ajax":({ url: "{{route("class.member_list")}}", method: "get", data: {id: id}, "columns": [{"data": "first_name", orderable: true, searchable: true}, {"data": "last_name", orderable: true, searchable: true}, {"data": "email", orderable: false, searchable: false}, {"data": "created_at", orderable: true}, {"data": "action", orderable: false, searchable: false} ] }), }); $(document).on('click', '.delete', function () { var id = $(this).attr("id"); console.log(id); const swalWithBootstrapButtons = Swal.mixin({ customClass: { confirmButton: 'btn btn-success', cancelButton: 'btn btn-danger' }, buttonsStyling: false }) swalWithBootstrapButtons.fire({ title: 'Are you sure?', text: "You won't be able to revert this!", icon: 'warning', showCancelButton: true, confirmButtonText: 'Yes, delete it!', cancelButtonText: 'No, cancel!', reverseButtons: true }).then((result) => { if (result.value) { $.ajax({ url: "{{route("class.delete_member")}}", method: "get", data: {id: id}, success: function (data) { $('#student_table').DataTable().ajax.reload(); }, error: function (data) { console.log('Error:', data); } }) swalWithBootstrapButtons.fire( 'Deleted!', 'Your file has been deleted.', 'success' ) } else if ( result.dismiss === Swal.DismissReason.cancel ) { swalWithBootstrapButtons.fire( 'Cancelled', 'Your imaginary file is safe :)', 'error' ) } }) }); }) </script> نقل قول Share this post Link to post Share on other sites
HASSSSAN 0 گزارش دادن ارسال شده در فروردین 99 در 12 ساعت قبل، saber گفته است : احتمال زیاد مشکل از متد کنترلر هست که اطلاعات رو باید به شکل json برگردونه کدهایی رو که در کنترلر برای دریافت لیست اعضا نوشتید قرار بدید ببینیم چی نوشتید کد ها رو قرار دادم. پیشاپیش ممنون از کمکتون نقل قول Share this post Link to post Share on other sites
HASSSSAN 0 گزارش دادن ارسال شده در فروردین 99 در 2 ساعت قبل، HASSSSAN گفته است : route: Route::GET('/members/{id}', 'ClassController@member')->name('class.member'); Route::GET('members/list', 'ClassController@member_list')->name('class.member_list'); link: <a href="{{route('class.member', ['id' => $class->id])}}" class="btn btn-lg btn-block btn-success">Members</a> کنترلر: public function member($id) { $class = Classroom::where('id', $id)->first(); return view('class.Show_Member', compact('class')); } public function member_list(Request $request) { $user = \DB::table('scs') ->join('users', 'scs.user_id', '=', 'users.id') ->where('classroom_id', $request->input('id')) ->get(); return DataTables::of($user) ->addColumn('action', function ($user) { return '<a href="#" class="btn btn-xs btn-danger delete" id=" ' . $user->id . ' ">Delete</a>'; }) ->make('true'); } script: <script type="text/javascript"> $(document).ready(function () { var id={{$class->id}}; $('#student_table').DataTable({ "processing": true, "serverSide": true, "ajax":({ url: "{{route("class.member_list")}}", method: "get", data: {id: id}, "columns": [{"data": "first_name", orderable: true, searchable: true}, {"data": "last_name", orderable: true, searchable: true}, {"data": "email", orderable: false, searchable: false}, {"data": "created_at", orderable: true}, {"data": "action", orderable: false, searchable: false} ] }), }); $(document).on('click', '.delete', function () { var id = $(this).attr("id"); console.log(id); const swalWithBootstrapButtons = Swal.mixin({ customClass: { confirmButton: 'btn btn-success', cancelButton: 'btn btn-danger' }, buttonsStyling: false }) swalWithBootstrapButtons.fire({ title: 'Are you sure?', text: "You won't be able to revert this!", icon: 'warning', showCancelButton: true, confirmButtonText: 'Yes, delete it!', cancelButtonText: 'No, cancel!', reverseButtons: true }).then((result) => { if (result.value) { $.ajax({ url: "{{route("class.delete_member")}}", method: "get", data: {id: id}, success: function (data) { $('#student_table').DataTable().ajax.reload(); }, error: function (data) { console.log('Error:', data); } }) swalWithBootstrapButtons.fire( 'Deleted!', 'Your file has been deleted.', 'success' ) } else if ( result.dismiss === Swal.DismissReason.cancel ) { swalWithBootstrapButtons.fire( 'Cancelled', 'Your imaginary file is safe :)', 'error' ) } }) }); }) </script> من الان ایرور ajax رو چک کردم، این ایرور رو میده: Trying to get property of non-object به همراه شماره ی این خط از کد: var id={{$class->id}}; ولی خب توی کنسول مقدار id رو درست چاپ میکنه! وقتی هم که کد رو به این شکل تغییر میدم: var id=74; ایرور ajax این شکلی میشه: نقل قول Share this post Link to post Share on other sites
saber 143 گزارش دادن ارسال شده در فروردین 99 یکی از اشکالاتی که کدتون داره این هست که قسمت columns رو در داخل ایجکس قرار دادید باید خارج از کد ایجکس قرار بدید که به شکل زیر میشه $(document).ready(function () { var id={{$class->id}}; $('#student_table').DataTable({ "processing": true, "serverSide": true, "ajax":({ url: "{{route("class.member_list")}}", method: "get", data: {id: id} }), columns : [ {"data": "first_name", orderable: true, searchable: true}, {"data": "last_name", orderable: true, searchable: true}, {"data": "email", orderable: false, searchable: false}, {"data": "created_at", orderable: true}, {"data": "action", orderable: false, searchable: false} ] }); نقل قول Share this post Link to post Share on other sites
HASSSSAN 0 گزارش دادن ارسال شده در فروردین 99 در 1 ساعت قبل، saber گفته است : یکی از اشکالاتی که کدتون داره این هست که قسمت columns رو در داخل ایجکس قرار دادید باید خارج از کد ایجکس قرار بدید که به شکل زیر میشه $(document).ready(function () { var id={{$class->id}}; $('#student_table').DataTable({ "processing": true, "serverSide": true, "ajax":({ url: "{{route("class.member_list")}}", method: "get", data: {id: id} }), columns : [ {"data": "first_name", orderable: true, searchable: true}, {"data": "last_name", orderable: true, searchable: true}, {"data": "email", orderable: false, searchable: false}, {"data": "created_at", orderable: true}, {"data": "action", orderable: false, searchable: false} ] }); این کار رو هم کردم، درست نشد. نقل قول Share this post Link to post Share on other sites
saber 143 گزارش دادن ارسال شده در فروردین 99 در 1 ساعت قبل، HASSSSAN گفته است : این کار رو هم کردم، درست نشد. اون یکی از اشکالاتش بود مشکل بعدی هم متد member_list رو به شکل زیر تغییر بدید public function member_list(Request $request) { $users = \DB::table('scs') ->join('users', 'scs.user_id', '=', 'users.id') ->where('classroom_id', $request->input('id')) ->get(); return DataTables::of($users) ->addColumn('action', function ($user) use ($users){ return '<a href="#" class="btn btn-xs btn-danger delete" id=" ' . $user->id . ' ">Delete</a>'; }) ->make('true'); } نقل قول Share this post Link to post Share on other sites