- vừa được xem lúc

Hướng dẫn search column trong laravel-datatables với package yajra/laravel-datatables

0 0 18

Người đăng: Trường Trần Văn

Theo Viblo Asia

Link install package ở đây: https://yajrabox.com/docs/laravel-datatables/master/

Trong phần plugin HTML chúng ta sử dụng Events/Callbacks để tạo các input search tương ứng với mỗi column và bắt sự kiện logic search của từng input. code sẽ như sau:

public function html() { $this->instanceHtml = $this->builder() ->setTableId('buildingTable') ->columns($this->getColumns()) ->minifiedAjax() ->dom('Blfrtip'); $this->htmlParameters(); return $this->instanceHtml; } protected function htmlParameters(){ $this->instanceHtml = $this->instanceHtml ->parameters([ // 'responsive' => true, 'ordering' => false, 'autoWidth' => false, 'initComplete' => "function () { searchColumsDataTable(this); }", ]); }

Với đoạn code trên tôi sử dụng event callback initComplete để chạy 2 function js được setup sẵn ngoài view. code của 2 function như sau:

function searchColumsDataTable(datatable) { datatable.api().columns([1, 2, 3]).every(function () { var column = this; var input = document.createElement("input"); input.setAttribute('placeholder', 'Nhập từ khóa'); input.setAttribute('class', 'form-control'); $(input).appendTo($(column.footer()).empty()) .on('change', function () { column.search($(this).val(), false, false, true).draw(); }); }); }

Với function js ở trên nó sẽ thực hiện chức năng render các input vào các column 1, 2, 3 vào footer và bắt sự kiện onchange trên mỗi input để search với keyword và trả về các record theo keyword trên mỗi column. Với đoạn column.search($(this).val(), false, false, true).draw() bạn vào docs của datatable có hướng dẫn chi tiết nhé.

Tới đây để bắt được các keyword search theo column thì trong controller các bạn phải dùng DI. code như sau

public function index(BuildingDataTable $dataTable){ return $dataTable->render('view);
}

Với class BuildingDataTable Chúng ta tạo với hướng dẫn ở link sau: https://yajrabox.com/docs/laravel-datatables/master/quick-starter

Chúc các bạn thành công !

Bình luận

Bài viết tương tự

- vừa được xem lúc

DataTable và Laravel

1. Giới thiệu:.

0 0 96

- vừa được xem lúc

RECAPTCHAV3 trong Laravel 9

Recaptcha của google là công cụ miễn phí và hiệu quả để chống lại Spam request - DDOS tới trang wed của bạn. Mình add recaptcha vào dự án đã dựng sẵn, các bạn nào chưa có dự án thì cứ tìm kiếm và dựng

0 0 26

- vừa được xem lúc

Mail trong Laravel

Giới thiệu. Trong Laravel có thể gửi mail theo nhiều cách (driver) khác nhau như SMTP, Mailgun, Postmark, Amazon SES …Bạn có thể gửi các transaction mail (mail giao dịch) như Postmark hoặc các mail vớ

0 0 18

- vừa được xem lúc

Middleware trong Laravel

Giới thiệu. . . Middleware là những đoạn mã trung gian nằm giữa các request và response.

0 0 22

- vừa được xem lúc

Task Scheduling trong Laravel

Giới thiệu. .

0 0 19

- vừa được xem lúc

HTTP Responses

Creating Responses. Strings & Arrays. Route::get('/', function () {. return 'Hello World';.

0 0 7