1. Go to this page and download the library: Download ozdemir/datatables library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ozdemir / datatables example snippets
mir\Datatables\Datatables;
use Ozdemir\Datatables\DB\MySQL;
$config = [ 'host' => 'localhost',
'port' => '3306',
'username' => 'homestead',
'password' => 'secret',
'database' => 'sakila' ];
$dt = new Datatables( new MySQL($config) );
$dt->query('Select film_id, title, description from film');
echo $dt->generate();
// Codeigniter 4 Example
namespace App\Controllers;
use Config\Database;
use Ozdemir\Datatables\Datatables;
use Ozdemir\Datatables\DB\Codeigniter4Adapter;
class Home extends BaseController
{
public function index()
{
return view('index');
}
public function ajax()
{
// CI 4 builder class
$db = Database::connect();
$builder = $db->table('Track');
$builder->select('TrackId, Name, UnitPrice');
// Datatables Php Library
$datatables = new Datatables(new Codeigniter4Adapter);
// using CI4 Builder
$datatables->query($builder);
// alternatively plain sql
// $datatables->query('Select TrackId, Name, UnitPrice from Track');
return $this->response->setJSON($datatables->generate()->toJson());
}
}
// Laravel Example
// routes/web.php
use Ozdemir\Datatables\Datatables;
use Ozdemir\Datatables\DB\LaravelAdapter;
Route::get('/ajax/laravel', function () {
$dt = new Datatables(new LaravelAdapter);
$dt->query(
Track::query()
->select([
'TrackId',
'Track.Name',
'Title as Album',
'MediaType.Name as MediaType',
'UnitPrice',
'Milliseconds',
'Bytes',
])
->join('Album', 'Album.AlbumId', 'Track.AlbumId')
->join('MediaType', 'MediaType.MediaTypeId', 'Track.MediaTypeId')
); // same as the previous example, sql statement can be used.
return $dt->generate();
});
mir\Datatables\Datatables;
use Ozdemir\Datatables\DB\SQLite;
$path = __DIR__ . '/../path/to/database.db';
$dt = new Datatables( new SQLite($path) );
$dt->query('Select id, name, email, age, address, plevel from users');
$dt->edit('id', function($data){
// return a link.
return "<a href='user.php?id=" . $data['id'] . "'>edit</a>";
});
$dt->edit('email', function($data){
// masks email : [email protected] => m***@mail.com
return preg_replace('/(?<=.).(?=.*@)/u','*', $data['email']);
});
$dt->edit('address', function($data){
// checks user access.
$current_user_plevel = 4;
if ($current_user_plevel > 2 && $current_user_plevel > $data['plevel']) {
return $data['address'];
}
return 'you are not authorized to view this column';
});
$dt->hide('plevel'); // hides 'plevel' column from the output
$dt->add('action', function($data){
// returns a link in a new column
return "<a href='user.php?id=" . $data['id'] . "'>edit</a>";
});
$dt->filter('age', function (){
// applies custom filtering.
return $this->between(15, 30);
});
echo $dt->generate()->toJson(); // same as 'echo $dt->generate()';
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.