1) add cdns
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
2) define route
Route::get('administrator/department/fetch-users',[DepartmentController::class,'fetchUsers']);
3) Controller method
protected function fetchUsers(Request $request)
{
try {
$data = DB::table('admin_users')
->where('name', 'like', '%' . $request->search . '%')
->get();
return response()->json($data);
} catch (Exception $e) {
return $e;
}
}
4) add select input
<select class="js-example-data-ajax form-control">
<option value="3620194" selected="selected">select2/select2</option>
</select>
5) jquery script
<script>
$('.js-example-data-ajax').select2({
ajax: {
url: "{{ url('administrator/department/fetch-users') }}",
dataType:"json",
delay:250,
data: function(params) {
var query = {
search: params.term
};
},
processResults: function(data) {
return {
results: data.map(function(user){
return {
id: user.id,
text: user.name + ' (' + user.email + ')',
};
})
};
},
cache: true
},
minimumInputLength: 1
});
</script>
No comments:
Post a Comment