I created project in laravel with data table on it. I want to return a div value as progress bar in my column. But, only text shown in my table, not the progress bar. Here is my controller
JavaScript
x
22
22
1
public function index(Request $request)
2
{
3
4
if ($request->ajax()) {
5
$data = Post::where('user_id', Auth::id())->latest()->get();
6
return Datatables::of($data)
7
->addIndexColumn()
8
->addColumn('progress', function ($row) {
9
$pro = $row->progress;
10
if ($pro == 0) {
11
$bar = '<div class="progress"> <div class="progress-bar" role="progressbar" style="width: 0%;" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100">0%</div></div>';
12
return $bar;
13
} else if (){}
14
15
})
16
->rawColumns(['action'])
17
->make(true);
18
}
19
20
return view('Home');
21
}
22
here is my view
JavaScript
1
49
49
1
$(function() {
2
3
$.ajaxSetup({
4
headers: {
5
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
6
}
7
});
8
9
var table = $('.data-table').DataTable({
10
processing: true,
11
serverSide: true,
12
ajax: "{{ route('home.index') }}",
13
14
columns: [{
15
data: 'DT_RowIndex',
16
name: 'DT_RowIndex',
17
orderable: false,
18
searchable: false,
19
},
20
{
21
data: 'title',
22
name: 'title',
23
orderable: false,
24
},
25
{
26
data: 'content',
27
name: 'content',
28
orderable: false,
29
visible: false,
30
},
31
{
32
data: 'progress',
33
name: 'progress'
34
},
35
{
36
data: 'status',
37
name: 'status'
38
},
39
40
{
41
data: 'action',
42
name: 'action',
43
orderable: false,
44
searchable: false
45
},
46
]
47
});
48
49
I want to add Bootstrap Progress in each progress column, is that possible? or something wrong in my code? thanks in advance
Advertisement
Answer
Add progress
column on your rawColumns()
:
JavaScript
1
2
1
rawColumns(['action', 'progress'])
2