๋๋ laravel์ ์ฒ์ ์ฌ์ฉํฉ๋๋ค. jquery ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ฌ datatable์ ์คํํ ์์์์ต๋๋ค.
์๋ฒ ์ธก ์ฒ๋ฆฌ๋ฅผ ๋ถํํฉ๋๋ค. ์ ์ ์ 404 ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ค๋ ๋๋ ๋ง๋ฌ๋ค
500 ๋ด๋ถ ์๋ฒ ์ค๋ฅ. ์ ์๋์ง ์์ ๋ฉ์๋ Yajra \ Datatables \ Datatables๋ฅผ ํธ์ถํฉ๋๋ค.
์ด๊ฒ์ ๋ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์ฌ๊ธฐ๊ฐ ..
index.blade.php
์๋น์ค ์ ๊ณต์
๋ณ๋ช
๋ค์ ๊ฐ์
๊ณต์ฉ ํจ์ ์์ธ ($ request ์์ฒญ) {
$categories = Category::all();
$query = Accession::select('*');
//this is for links that will run query according to
//category type
if ($request->input('type')){
switch ($request->input('type')){
case 'Photo':
$query->where('category_id', 2);
break;
case 'Field Notes':
$query->where('category_id', 3);
break;
case 'Audio Recording':
$query->where('category_id', 4);
break;
case 'Instrument':
$query->where('category_id', 5);
break;
case 'Music Scores':
$query->where('category_id', 6);
break;
case 'Video':
$query->where('category_id', 7);
break;
case 'Vertical Files':
$query->where('category_id', 8);
break;
default:
$query->orderBy('id', 'asc')->get();
}
$accessions = $query->orderBy('id')->get();
return view('accessions.index', compact('accessions', 'categories'));
}
//this is for search bar
$search = $request->input('search'); //<-- we use global request to get the param of URI
if($search){
$accessions = Accession::where('groupcountry','LIKE','%'.$search.'%')
->orWhere('description', 'LIKE', '%'.$search.'%')
->orWhere('author', 'LIKE', '%'.$search.'%')
->orWhere('accession_no','LIKE','%'.$search.'%')
->orWhere('year','LIKE','%'.$search.'%')
->paginate(10);
return view('accessions.index', compact('accessions', 'categories'));
}
else{
$accessions = Accession::orderBy('id', 'asc')->get();
return view('accessions.index', compact('accessions', 'categories'));
}
}
YajraDatatables \ FacadesDatatables๋ฅผ ์ฌ์ฉํ๋๋ก ๋ค์ ์คํ์ด์ค๋ฅผ ๋ณ๊ฒฝํ์ต๋๋ค.
์ด์ ํ
์ด๋ธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋๋ผ๋ ํ์๋ฉ๋๋ค.
์ค๋ฅ๋ ์ค๋ฅ 200์ ๋๋ค.
์ค๋ฅ๋ฅผ ๋ ์ ๋ณด๋ ค๋ฉด ajax ์๋ต์ ๊ฒ์ฌ ํด๋ณด์ญ์์ค. ๋ํ ์ด๊ณผ js๊ฐ ํ ์ด๋ธ ๊ตฌ์กฐ์ ์ผ์นํ๋์ง ๋ค์ ํ์ธํด์ผ ํ ์๋ ์์ต๋๋ค. ์ด๊ฒ์ ์๋ง๋ js ๋ฌธ์ ์ผ ๊ฒ์ ๋๋ค.
์๋ต ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์, ์์ฝ์ค ์๋ต์ ํ์ธํ์ต๋๋ค. JSON ๋ฆฐํธ๊ฐ ์ข์ ๋ณด์ ๋๋ค. ์ค๋ฅ 200์ด ์ฌ๋ผ์ก์ต๋๋ค. ์ด๊ณผ js๋ฅผ ํ์ธํ๊ณ ํ ์ด๋ธ ๊ตฌ์กฐ์ ์ผ์น์ํต๋๋ค. ์ง๊ธ๊น์ง ์ค๋ฅ๋
๋ค์ ํ์ธํฉ๋๋ค
404 Not Found ๋ php artisan serve
์ฌ์ฉํ ๋ ํ๊ฒฝ ๋ฌธ์ ๋ก ์ธํด ๊ฐํ์ ์ผ๋ก ๋ฐ์ํ๋ dataTables ๋ฌธ์ ์
๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ๋ฐ๋ , ํ์คํ
๋ ๋๋ wamp / xampp๋ฅผ ์ฌ์ฉํ์ญ์์ค.
@yajra . ์. ํ์ฌ xampp๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๊ณ์ ๊ฒ์
๊ฒฝ๋ก ์ ์๊ฐ ๊ฒํ ๋์์ต๋๋ค. ๊ฐํ์ ์ธ 404์ด์ง๋ง ajax๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํฉ๋๋ค. ํ๊ฒฝ ๋ฌธ์ ์ ๋ํด ๋์ํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
heroku์์ ๋ผ์ด๋ธ ์ฑ์ ๋ฐฐํฌํ์ต๋๋ค. 404๊ฐ ์ฌ๋ผ์ก์ต๋๋ค. ๊ทธ๋์ ์ด๊ฒ์ ํ์ธ ๋ ํ๊ฒฝ ๋ฌธ์ ์ ๋๋ค. ์ด๊ฒ์ ๋ซ์ต๋๋ค. @yajra ์ค๋ฅ๋ฅผ
์์ ์๋ฃจ์ ์ ํ๋ก์ ํธ๋ฅผ XAMPP์ HTDOCS ๋๋ WAMPP์ www๋ก ์ ์กํ๊ฑฐ๋ ๋ผ์ด๋ธ๋ก ์คํํ๊ธฐ ๋งํ๋ฉด๋ฉ๋๋ค.
@ marker17 ์ ๋ค์๊ณผ ๊ฐ์ด javascript ์ web.php ๋ฅผ
$(document).ready(function () {
var table = $('#example').DataTable({
dom: 'lBrtip',
processing: true,
serverSide: true,
ajax: {
'url':'{!!url("ajax/chapter/list")!!}',
'type': 'POST',
'headers': {
'X-CSRF-TOKEN': '{{ csrf_token() }}'
}
},
orderCellsTop: true,
fixedHeader: true,
"columns": [{
data: 'DT_RowIndex',
orderable: false,
searchable: true
},
{data: 'stream_id'},
{data: 'course_id'},
{data: 'subject_id'},
{data: 'chapter_name'},
{data: 'status'},
{data: 'edit_delete',orderable: false},
],
});
});
๊ทธ๋ฆฌ๊ณ web.php
๊ฒฝ๋ก :: ์์ ( 'ajax / chapter / list', 'YourController @Method ');
์ด ์ฝ๋๋ ๋๋ฅผ ์ํด ์ผํ์ต๋๋ค.
@ marker17 ์ ๋ค์๊ณผ ๊ฐ์ด javascript ์ web.php ๋ฅผ
$(document).ready(function () { var table = $('#example').DataTable({ dom: 'lBrtip', processing: true, serverSide: true, ajax: { 'url':'{!!url("ajax/chapter/list")!!}', 'type': 'POST', 'headers': { 'X-CSRF-TOKEN': '{{ csrf_token() }}' } }, orderCellsTop: true, fixedHeader: true, "columns": [{ data: 'DT_RowIndex', orderable: false, searchable: true }, {data: 'stream_id'}, {data: 'course_id'}, {data: 'subject_id'}, {data: 'chapter_name'}, {data: 'status'}, {data: 'edit_delete',orderable: false}, ], });
});
๊ทธ๋ฆฌ๊ณ web.php
๊ฒฝ๋ก :: ์์ ( 'ajax / chapter / list', 'YourController @Method ');
์ด ์ฝ๋๋ ๋๋ฅผ ์ํด ์ผํ์ต๋๋ค.
๋ด ํ๋ฃจ๋ฅผ ๊ตฌํด์ค
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
404 Not Found ๋
php artisan serve
์ฌ์ฉํ ๋ ํ๊ฒฝ ๋ฌธ์ ๋ก ์ธํด ๊ฐํ์ ์ผ๋ก ๋ฐ์ํ๋ dataTables ๋ฌธ์ ์ ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ๋ฐ๋ , ํ์คํ ๋ ๋๋ wamp / xampp๋ฅผ ์ฌ์ฉํ์ญ์์ค.