yajrabox datatable
1-composer require yajra/laravel-datatables-oracle
2-config/app.php
'providers' => [Yajra\Datatables\DatatablesServiceProvider::class,
'aliases' => ['Datatables' => Yajra\Datatables\Facades\Datatables::class,
3- php artisan vendor:publish
4-php artisan tinker
>>> factory(App\People::class, 50)->create();
5-Route::get('my-datatables', 'PeopleController@index');
Route::get('get-data-my-datatables','PeopleController@getData')->name('get.data');
6- make controller
personcontroller-
<?php
namespace App\Http\Controllers;
use App\People;
use Illuminate\Http\Request;
use DB;
use Yajra\Datatables\Datatables;
class PeopleController extends Controller
{/**
* Displays front end view
*
* @return \Illuminate\View\View
*/
public function index()
{
return view('datatable');
}
/**
* Process ajax request.
*
* @return \Illuminate\Http\JsonResponse
*/
public function getData()
{
return Datatables::of(People::query())->make(true);
}
public function searchItem(Request $request)
{
if($request->ajax())
{
$output="";
$peoples=DB::table('peoples')->where('name','LIKE','%'.$request->search."%")
->orWhere('email','LIKE','%'.$request->search."%")
->orWhere('id','LIKE','%'.$request->search."%")->get();
if($peoples)
{
foreach ($peoples as $key => $people) {
$output.='<tr>'.
'<td>'.$people->id.'</td>'.
'<td>'.$people->name.'</td>'.
'<td>'.$people->email.'</td>'.
'</tr>';
}
return Response($output);
}
}
}
public function delete(Request $request){
if ($request->ajax()){
People::destroy($request->id);
}
}
public function update(Request $request){
if ($request->ajax()){
$people = People::find($request->id);
$people->name = $request->input('name');
$people->email = $request->input('email');
$people->update();
return response($people);
}
}
}
2-config/app.php
'providers' => [Yajra\Datatables\DatatablesServiceProvider::class,
'aliases' => ['Datatables' => Yajra\Datatables\Facades\Datatables::class,
3- php artisan vendor:publish
4-php artisan tinker
>>> factory(App\People::class, 50)->create();
5-Route::get('my-datatables', 'PeopleController@index');
Route::get('get-data-my-datatables','PeopleController@getData')->name('get.data');
6- make controller
personcontroller-
<?php
namespace App\Http\Controllers;
use App\People;
use Illuminate\Http\Request;
use DB;
use Yajra\Datatables\Datatables;
class PeopleController extends Controller
{/**
* Displays front end view
*
* @return \Illuminate\View\View
*/
public function index()
{
return view('datatable');
}
/**
* Process ajax request.
*
* @return \Illuminate\Http\JsonResponse
*/
public function getData()
{
return Datatables::of(People::query())->make(true);
}
public function searchItem(Request $request)
{
if($request->ajax())
{
$output="";
$peoples=DB::table('peoples')->where('name','LIKE','%'.$request->search."%")
->orWhere('email','LIKE','%'.$request->search."%")
->orWhere('id','LIKE','%'.$request->search."%")->get();
if($peoples)
{
foreach ($peoples as $key => $people) {
$output.='<tr>'.
'<td>'.$people->id.'</td>'.
'<td>'.$people->name.'</td>'.
'<td>'.$people->email.'</td>'.
'</tr>';
}
return Response($output);
}
}
}
public function delete(Request $request){
if ($request->ajax()){
People::destroy($request->id);
}
}
public function update(Request $request){
if ($request->ajax()){
$people = People::find($request->id);
$people->name = $request->input('name');
$people->email = $request->input('email');
$people->update();
return response($people);
}
}
}
7-make blade file
datatable.blade.php-
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title> DataTables </title>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="{{asset('css/jquery.dataTables.min.css')}}">
</head>
<body>
<div class="container">
<br/>
<h1 class="text-center">DATATABLE </h1>
<br/>
<table class="table table-bordered" id="people-table">
<thead>
<div class="panel-body">
<div class="form-group">
<input type="text" class="form-controller" id="search" name="search">you can search here</input>
</div>
<tr>
<th>Id</th>
<th>Name</th>
<th>Email</th>
</th>
</tr>
</thead>
</table>
</div>
<script src="//code.jquery.com/jquery.js"></script>
<script src="{{asset('js/jquery.dataTables.min.js')}}"></script>
<!-- -->
<script>
$(function() {
$('#people-table').DataTable({
processing: true,
serverSide: true,
ajax: '{!! route('get.data') !!}',
columns: [
{ data: 'id', name: 'id' },
{ data: 'name', name: 'name' },
{ data: 'email', name: 'email' },
]
});
});
$("#add").click(function() {
$.ajax({
type: 'post',
url: '/addItem',
data: {
'_token': $('input[name=_token]').val(),
'name': $('input[name=name]').val()
},
success: function(data) {
if ((data.errors)) {
$('.error').removeClass('hidden');
$('.error').text(data.errors.name);
} else {
$('.error').remove();
$('#people-table').append("<tr class='item" + data.id + "'><td>" + data.id + "</td><td>"
+ data.name + "</td><td><button class='edit-modal btn btn-info' data-id='" + data.id + "' data-name='" + data.name + "'><span class='glyphicon glyphicon-edit'></span> Edit</button> <button class='delete-modal btn btn-danger' data-id='" + data.id + "' data-name='" + data.name + "'><span class='glyphicon glyphicon-trash'></span> Delete</button></td></tr>");
}
},
});
$('#name').val('');
});
</script>
<script type="text/javascript">
$('#search').on('keyup',function(){
$value=$(this).val();
$.ajax({
type : 'get',
url : '/search',
data:{'search':$value},
success:function(data){
$('tbody').html(data);
}
});
})
</script>
<script type="text/javascript">
$.ajaxSetup({ headers: { 'csrftoken' : '{{ csrf_token() }}' } });
</script>
<script>
$(document).on('click', '.delete', function(){
var id = $(this).data('id');
$('#deletemodal').modal('show');
$('#deletepeople').val(id);
});
$('#deletepeople').click(function(){
var id = $(this).val();
$.post("{{ URL::to('delete') }}",{id:id}, function(){
$('#deletemodal').modal('hide');
showPeople();
})
});
$(document).on('click', '.update', function(){
var id = $(this).data('id');
var name = $(this).data('name');
var email = $(this).data('email');
$('#editmodal').modal('show');
$('#name').val(name);
$('#email').val(email);
$('#id').val(id);
});
$('#editpeople').on('submit', function(e){
e.preventDefault();
var form = $(this).serialize();
var url = $(this).attr('action');
$.post(url,form,function(data){
$('#editmodal').modal('hide');
showPeople();
})
});
function showPeople(){
$.get("{{ URL::to('show') }}", function(data){
$('#personBody').empty().html(data);
})
}
</script>
@stack('scripts')
</body>
</html>
run program
php artisan serve
Comments
Post a Comment