Membuat nomor data pada datatables

Pada gambar diatas, pada tabel memiliki nomor 8 dan 9. karena diambil dari id data tsb. saya ingin jika hanya tersisa 2 data, maka nomor pada tabel hanya 1 dan 2.

bagaimana membuat nomor yg dinamis(1,2,3,..dst)(bukan dari id data) ketika menggunakan datatables ?

jika tidak menggunakan datatables saya biasanya menggunakan


@php
$i = 0;
@endphp
@foreach($data as $d)
  {{ $i++}}
  {{$d->title}}

dibawah saya lampirkan kode saya

 public function dataTable(){
        $assets = Asset::query();
        return Datatables::of($assets)
            ->addColumn('show_file', function($assets){
                if ($assets->file == NULL){
                    return 'No Image';
                }
                    return '<a href="'.url('/upload/'.$assets->file) .'" target="_blank" >'.$assets->file.'</a>';
            })
            ->addColumn('action', function($assets){
            return  '<a href="'. url('preview/'.$assets->id) .'" class="btn btn-info btn-xs" style="margin:2px;" target="_blank">Show</a>'.
                    '<a onclick="editForm('. $assets->id . ')" style="margin:2px;" class="btn btn-primary btn-xs"> Edit</a>' .
                    '<a onclick="deleteData('. $assets->id . ')" style="margin:2px;" class="btn btn-danger btn-xs ">Delete</a>';
        })
        ->rawColumns(['show_file', 'action'])->make(true);
    }
 var table = $('#dataTable').DataTable({
                      processing: true,
                      serverSide: true,
                      ajax: "{{ route('tables.data') }}",
                      columns: [
                        {data: 'id', name: 'id'},
                        {data: 'name', name: 'name'},
                        {data: 'desc', name: 'desc'},
                        {data: 'show_file', name: 'show_file'},
                        {data: 'action', name: 'action', orderable: false, searchable: false}
                      ],
                      "columnDefs": [
                            { "width": "5%", "targets": 0 }
                         ]
            });
avatar newbieprogrammer
@newbieprogrammer

35 Kontribusi 6 Poin

Diperbarui 4 tahun yang lalu

13 Jawaban:

nomor dinamis tuh kaya gimana gan

avatar ranialmonk
@ranialmonk

42 Kontribusi 11 Poin

Dipost 5 tahun yang lalu

nomornya 1, 2 ,3 dst bukan ngambil id data.

avatar newbieprogrammer
@newbieprogrammer

35 Kontribusi 6 Poin

Dipost 5 tahun yang lalu

Bisa dengan menggunakan, addIndexColumn(): <pre> public function dataTable(){ $assets = Asset::query(); return Datatables::of($assets) -&gt;addColumn('show_file', function($assets){ if ($assets-&gt;file == NULL){ return 'No Image'; } return '&lt;a href="'.url('/upload/'.$assets-&gt;file) .'" target="_blank" &gt;'.$assets-&gt;file.'&lt;/a&gt;'; }) -&gt;addColumn('action', function($assets){ return '&lt;a href="'. url('preview/'.$assets-&gt;id) .'" class="btn btn-info btn-xs" style="margin:2px;" target="_blank"&gt;Show&lt;/a&gt;'. '&lt;a onclick="editForm('. $assets-&gt;id . ')" style="margin:2px;" class="btn btn-primary btn-xs"&gt; Edit&lt;/a&gt;' . '&lt;a onclick="deleteData('. $assets-&gt;id . ')" style="margin:2px;" class="btn btn-danger btn-xs "&gt;Delete&lt;/a&gt;'; }) -&gt;rawColumns(['show_file', 'action']) -&gt;addIndexColumn() // tambahkan line ini -&gt;make(true); } </pre> lalu ada bagian js-nya:

<pre> var table = $('#dataTable').DataTable({ processing: true, serverSide: true, ajax: "{{ route('tables.data') }}", columns: [ { data: 'DT_RowIndex', name:'DT_RowIndex'}, {data: 'id', name: 'id'}, {data: 'name', name: 'name'}, {data: 'desc', name: 'desc'}, {data: 'show_file', name: 'show_file'}, {data: 'action', name: 'action', orderable: false, searchable: false} ], "columnDefs": [ { "width": "5%", "targets": 0 } ] }); </pre>

Smoga bisa membantu gan.

avatar zergz
@zergz

62 Kontribusi 47 Poin

Dipost 5 tahun yang lalu

terimakasih mas. tapi bagaimana agar idnya tidak ikut ditampilkan ? jika <pre> {data: 'id', name: 'id'}, </pre> saya hapus, maka akan terjadi error. karena datatables melakukan query ke database order by id

avatar newbieprogrammer
@newbieprogrammer

35 Kontribusi 6 Poin

Dipost 5 tahun yang lalu

@newbieprogrammer, bisa dengan menggunakan removeColumn(), dari kode yang sy brikan sbelumnya, tinggal ditambahkan sperti ini:

<pre> public function dataTable(){ $assets = Asset::query(); return Datatables::of($assets) -&gt;addColumn('show_file', function($assets){ if ($assets-&gt;file == NULL){ return 'No Image'; } return '&lt;a href="'.url('/upload/'.$assets-&gt;file) .'" target="_blank" &gt;'.$assets-&gt;file.'&lt;/a&gt;'; }) -&gt;addColumn('action', function($assets){ return '&lt;a href="'. url('preview/'.$assets-&gt;id) .'" class="btn btn-info btn-xs" style="margin:2px;" target="_blank"&gt;Show&lt;/a&gt;'. '&lt;a onclick="editForm('. $assets-&gt;id . ')" style="margin:2px;" class="btn btn-primary btn-xs"&gt; Edit&lt;/a&gt;' . '&lt;a onclick="deleteData('. $assets-&gt;id . ')" style="margin:2px;" class="btn btn-danger btn-xs "&gt;Delete&lt;/a&gt;'; }) -&gt;rawColumns(['show_file', 'action']) -&gt;addIndexColumn() // tambahkan line ini -&gt;removeColumn('id') // tambahkan line ini lagi untuk menghilangkan "id" -&gt;make(true); } </pre> apabila lebih dari 1, dibagian removeColumn() dipisahkan dengan koma, contoh:

<pre> -&gt;removeColumn('id', 'password', 'tanggal', 'dan seterusnya'); </pre>

Lalu pada bagian js:

<pre> var table = $('#dataTable').DataTable({ processing: true, serverSide: true, ajax: "{{ route('tables.data') }}", columns: [ { data: 'DT_RowIndex', name:'DT_RowIndex'}, {data: 'id', name: 'id'}, // line ini sudah bisa dihapus {data: 'name', name: 'name'}, {data: 'desc', name: 'desc'}, {data: 'show_file', name: 'show_file'}, {data: 'action', name: 'action', orderable: false, searchable: false} ], "columnDefs": [ { "width": "5%", "targets": 0 } ] }); </pre>

Apabila tampilan datatable nya menjadi tidak rapi pada view, bisa disesuaikan dgn html tablenya gan.

Smoga bisa membantu.

avatar zergz
@zergz

62 Kontribusi 47 Poin

Dipost 5 tahun yang lalu

<img src='https://i.imgur.com/oPimw89.png'>

terimakasih mas atas bantuannya. tapi kaya gitu mas.

avatar newbieprogrammer
@newbieprogrammer

35 Kontribusi 6 Poin

Dipost 5 tahun yang lalu

@newbieprogrammer, itu order by nya dilakukan dari controller? Klo dari controller, akan error, krn bukan bagian dari database. Coba cek console.log() nya dan coba lakukan dump untuk melihat error lengkapnya. Krn sampai hari ini ane jalan lancar2 saja gan. Untuk versi tertentu, ada yang menggunakan:

<pre> { data: 'DT_Row_Index', name: 'DT_Row_Index' } dan ada juga { data: 'DT_RowIndex', name:'DT_RowIndex' } </pre>

Smoga bisa membantu gan.

avatar zergz
@zergz

62 Kontribusi 47 Poin

Dipost 5 tahun yang lalu

<?php $no =1; ?>

@foreach

<td> {{ $no }} </td>

<?php $no++; ?> @endforeach

gini gan

avatar andridesmana
@andridesmana

23 Kontribusi 4 Poin

Dipost 5 tahun yang lalu

table id nya di hide aja pake css :)

avatar uzzielpelawak
@uzzielpelawak

72 Kontribusi 21 Poin

Dipost 5 tahun yang lalu

@uzzielpelawak wah kenapa dari kemarin ga kepikiran ya wkwk. thanks bang. ntar ane coba

avatar newbieprogrammer
@newbieprogrammer

35 Kontribusi 6 Poin

Dipost 5 tahun yang lalu

Terima kasih agan agan semua yang sudah membantu

akhirnya, kolom tersebut saya visibility nya

<pre> "columnDefs": [

  { &quot;width&quot;: &quot;5%&quot;, &quot;targets&quot;: 1 },
  { visible: false, &quot;targets&quot;: 0 }

] </pre>

avatar newbieprogrammer
@newbieprogrammer

35 Kontribusi 6 Poin

Dipost 5 tahun yang lalu

siap ! sukses buat project nya

avatar uzzielpelawak
@uzzielpelawak

72 Kontribusi 21 Poin

Dipost 5 tahun yang lalu

permisi semuanya ada yang mengerti tentang penomoran table di laravel dan mengikuti di etiap page nya semisal page 1 terdapat 10 data (dimulai dari no 1-10) dan page selanjutnya terdapat 10 data lagi dan saya ingin no otomatis akan dilanjutkan dari 11-20 mohon bantuannya teman-teman

avatar LuckyOne
@LuckyOne

1 Kontribusi 0 Poin

Dipost 4 tahun yang lalu

Login untuk ikut Jawaban