Laravel-datatables: μ„ΈλΆ€ ν–‰μ—μ„œ μ •μ˜λ˜μ§€ μ•Šμ€ 'μŠ€νƒ€μΌ'속성을 읽을 수 μ—†μŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2017λ…„ 06μ›” 12일  Β·  10μ½”λ©˜νŠΈ  Β·  좜처: yajra/laravel-datatables

문제 μš”μ•½ λ˜λŠ” κΈ°λŠ₯ μš”μ²­

데이터 ν…Œμ΄λΈ”μ΄μžˆλŠ” μ„ΈλΆ€ 정보 행이 μžˆμŠ΅λ‹ˆλ‹€. μ„ΈλΆ€ 정보 행이 μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€λ§Œ λ‹€λ₯Έ νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•˜λ©΄ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

문제의 μ½”λ“œ 슀 λ‹ˆνŽ«

μ—¬κΈ° λ‚΄ HTML

<table id="dt_basic" class="table table-striped table-hover" width="100%">
<thead>
   <tr>
   <th></th>
    <th class="text-center">ID</th>
    <th class="text-center">Nama Bank</th>
    <th class="text-center">Nama Akun</th>
    <th class="text-center">No. Rekening</th>
    <th class="text-center">Actions</th>
    </tr>
</thead>
</table>

<script src="<?php echo ASSETS_URL; ?>/js/handlebars-v4.0.10.js"></script>
<script id="details-template" type="text/x-handlebars-template">
    <table class="table">
        <tr>
            <td>Detail Info :</td>
            <td>Tidak ada informasi tambahan </td>
        </tr>
    </table>
</script>

λ‚΄ JS

var template = Handlebars.compile($("#details-template").html());
$('#dt_basic').dataTable({
       processing: true,
       serverSide: true,
       ajax: 'datatables/dataBank',
       columns: [
            {
                "className":      'details-control',
                "orderable":      false,
                "searchable":     false,
                "data":           null,
                "defaultContent": ''
            },
            { data: 'id', name: 'id', orderable:true},
            { data: 'nama_bank', name: 'nama_bank', orderable:true },
            { data: 'nama_akun', name: 'nama_akun',orderable:true },
            { data: 'no_rek', name: 'no_rek',orderable:true },
            { data: 'action', name: 'action', 'searchable':false },
        ],
        "sDom": "<'dt-toolbar hidden-print'<'col-xs-12 col-sm-11'f><'col-sm-1 col-xs-12 hidden-xs'l>r>"+
          "t"+
          "<'dt-toolbar-footer hidden-print'<'col-sm-6 col-xs-12 hidden-xs'i><'col-xs-12 col-sm-6'p>>",
        "autoWidth" : true,
        "preDrawCallback" : function() {
          // Initialize the responsive datatables helper once.
          if (!responsiveHelper_dt_basic) {
            responsiveHelper_dt_basic = new ResponsiveDatatablesHelper($('#dt_basic'), breakpointDefinition);
          }
        },
        "rowCallback" : function(nRow) {
          responsiveHelper_dt_basic.createExpandIcon(nRow);
        },
        "drawCallback" : function(oSettings) {
          responsiveHelper_dt_basic.respond();
        },
        order: [[1, 'desc']],
        "lengthMenu": [[5, 10, 25, 50, 100, -1], [5, 10, 25, 50, 100, "All"]],
        'iDisplayLength': 50,
    });
$('#dt_basic tbody').on('click', 'td.details-control', function () {
          var tr = $(this).closest('tr');
          var row = table.row( tr );

          if ( row.child.isShown() ) {
              // This row is already open - close it
              row.child.hide();
              tr.removeClass('shown');
          }
          else {
              // Open this row
              row.child( template(row.data()) ).show();
              tr.addClass('shown');
          }
      });

λ…ΈνŠΈ

ν•œ νŽ˜μ΄μ§€μ— λ¨Έλ¬Όλ©΄μ„œ 데이터 ν…Œμ΄λΈ”μ— μ•‘μ„ΈμŠ€ν•˜λ©΄ λͺ¨λ“  것이 잘 μž‘λ™ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ λ‹€λ₯Έ νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•˜λ©΄μ΄ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

jquery.dataTables.min.js:62 Uncaught TypeError: Cannot read property 'style' of undefined
    at Ha (jquery.dataTables.min.js:62)
    at Z (jquery.dataTables.min.js:13)
    at t.<anonymous> (jquery.dataTables.min.js:126)
    at t.iterator (jquery.dataTables.min.js:100)
    at t.<anonymous> (jquery.dataTables.min.js:126)
    at Function.adjust (jquery.dataTables.min.js:103)
    at t.<anonymous> (jquery.dataTables.min.js:126)
    at t.visible (jquery.dataTables.min.js:103)
    at t.<anonymous> (jquery.dataTables.min.js:138)
    at t.iterator (jquery.dataTables.min.js:100)

λ‚΄κ°€ 이것을 μ‚­μ œν•  λ•Œ

{
                "className":      'details-control',
                "orderable":      false,
                "searchable":     false,
                "data":           null,
                "defaultContent": ''
            },

였λ₯˜κ°€ λ°œμƒν–ˆμ§€λ§Œ λ‚΄ ν…Œμ΄λΈ”μ— ν•˜μœ„ ν–‰ / μ„ΈλΆ€ 행이 μ—†μŠ΅λ‹ˆλ‹€. Arjay λ„μ™€μ£Όμ„Έμš”
멋진 데이터 ν…Œμ΄λΈ”μ— κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

μ‹œμŠ€ν…œ μ„ΈλΆ€ 정보

  • 운영 체제 : Windows 10
  • PHP 버전 : 5 ++
  • 라 라벨 버전 : 5.4
  • Laravel-Datatables 버전 : 7.7
javascript question

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

응닡이 λŠ¦μ–΄μ„œ μ£„μ†‘ν•©λ‹ˆλ‹€. 제 μƒκ°μ—λŠ” 이것은 μ‹€μ œλ‘œ μ—΄ μˆ˜μ™€ 관련이 μžˆμŠ΅λ‹ˆλ‹€. HTMLμ—μ„œ <th> 및 <td> μˆ˜κ°€ λ™μΌν•œ 지 ν™•μΈν•˜μ‹­μ‹œμ˜€.

λͺ¨λ“  10 λŒ“κΈ€

νŽ˜μ΄μ§€ 맀김과 같은 dataTable의 λ‹€λ₯Έ ν™•μž₯을 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆκΉŒ? λ‚˜λŠ” 전에 이것을 λ§Œλ‚¬κ³  일뢀 ν™•μž₯을 μ œκ±°ν•˜μ—¬ μˆ˜μ •ν–ˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

λ‹€λ₯Έ 데이터 ν…Œμ΄λΈ” ν™•μž₯을 μ‚¬μš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. SmartAdmin ν…œν”Œλ¦Ώμ„ μ‚¬μš©ν•˜κ³  있으며 이미 데이터 ν…Œμ΄λΈ”μ΄ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
이 ν…œν”Œλ¦Ώμ—μ„œ λͺ¨λ“  데이터 ν…Œμ΄λΈ” jsλ₯Ό μ œκ±°ν•˜κ³  yajra 데이터 ν…Œμ΄λΈ”μ„ μ‚¬μš©ν•©λ‹ˆλ‹€.

λͺ‡ 가지 예λ₯Ό λ“€μ–΄ λ³΄κ² μŠ΅λ‹ˆλ‹€. μ—¬κΈ° λ‚΄ 슀크린 샷을 ν™•μΈν•˜μ‹­μ‹œμ˜€.이 문제λ₯Ό ν•΄κ²°ν•  수 있기λ₯Ό λ°”λžλ‹ˆλ‹€. :)
754pelx2axul 1
이것은 빈 νŽ˜μ΄μ§€μž…λ‹ˆλ‹€. 여기에 아무것도 μ—†μŠ΅λ‹ˆλ‹€ ...

k71k9vk2vgj3 2
이것은 데이터 ν…Œμ΄λΈ” νŽ˜μ΄μ§€μž…λ‹ˆλ‹€. 첫 λ²ˆμ§Έλ‘œλ“œ (λ˜λŠ” λ‹€λ₯Έ νŽ˜μ΄μ§€μ—μ„œ 첫 λ²ˆμ§Έλ‘œλ“œ). 이 데이터 ν…Œμ΄λΈ”μ€ μ™„λ²½ν•˜κ²Œ μž‘λ™ν•©λ‹ˆλ‹€.

zdhkg6mqy5x7
그런 λ‹€μŒ λ‹€λ₯Έ νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•©λ‹ˆλ‹€. μ‰½κ²Œ 확인할 수 μžˆλ„λ‘ 빈 νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•©λ‹ˆλ‹€. 그리고 였λ₯˜κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€. 빈 νŽ˜μ΄μ§€λŠ” 데이터없이 데이터 ν…Œμ΄λΈ” νŽ˜μ΄μ§€λ‘œ λ°”λ€λ‹ˆλ‹€.


           {
                "className":      'details-control',
                "orderable":      false,
                "searchable":     false,
                "data":           null,
                "defaultContent": ''
            },

이것을 μ‚­μ œν•˜λ©΄ evertyhing이 잘 μž‘λ™ν•˜μ§€λ§Œ datatablesμ—λŠ” μ„ΈλΆ€ 행이 μ—†μŠ΅λ‹ˆλ‹€. 미리 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.
λ‚˜λŠ” 이것을 κ³ μΉ˜λŠ” 방법을 λͺ¨λ₯Έλ‹€. ur λ‹΅λ³€ arjay μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.

μ—΄ μˆ˜κ°€ λ³€κ²½λ©λ‹ˆκΉŒ? 같은 λ¬Έμ œκ°€ μžˆμ§€λ§Œ μ—΄ μˆ˜κ°€ λ³€κ²½ 될 λ•Œλ§Œ λ°œμƒν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. μ–΄λ–€ 이유둜 dataTablesλŠ” 이전 λ°˜λ³΅μ—μ„œ 남은 μ—΄ 수λ₯Ό μœ μ§€ν•˜κ³  이전 ν…Œμ΄λΈ”μ„ νŒŒκ΄΄ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 파괴λ₯Ό 참으둜 μ„€μ •ν–ˆμŠ΅λ‹ˆλ‹€.

응닡이 λŠ¦μ–΄μ„œ μ£„μ†‘ν•©λ‹ˆλ‹€. 제 μƒκ°μ—λŠ” 이것은 μ‹€μ œλ‘œ μ—΄ μˆ˜μ™€ 관련이 μžˆμŠ΅λ‹ˆλ‹€. HTMLμ—μ„œ <th> 및 <td> μˆ˜κ°€ λ™μΌν•œ 지 ν™•μΈν•˜μ‹­μ‹œμ˜€.

λ‚˜μ—κ²Œ λ¬Έμ œλŠ” κΈ°λ‘₯의 μž”μž¬κ°€ μ£Όμœ„μ— κ±Έλ €μžˆμ–΄μ„œ κ·Έ μž”μž¬λ₯Ό νŒŒκ΄΄ν•΄μ•Όν•œλ‹€λŠ” 것이 μ—ˆμŠ΅λ‹ˆλ‹€.

var myDataTable = $("#" + this.options.id).DataTable(myOptions);
myDataTable.destroy(true);
const tableNode = $("<table id='164154654'></table>")
$(someContainer).append(tableNode);

ν…Œμ΄λΈ” λ…Έλ“œλ₯Ό μ €μž₯ν•˜κ³  μ™„μ „νžˆ 파괴 ν•œ λ‹€μŒ λ‹€μ‹œ μƒμ„±ν•˜μ—¬ 문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

λ‚΄ λ¬Έμ œλŠ” μ—¬μ „νžˆ μ‘΄μž¬ν•©λ‹ˆλ‹€. κ·Έλž˜μ„œ μ €λŠ”μ΄ κΈ°λŠ₯을 μ‚¬μš©ν•˜μ§€ μ•Šμ„ 것이라고 μƒκ°ν•©λ‹ˆλ‹€. ν—€ν—€

응닡 ν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.

λΏ‘λΏ‘

ν…Œμ΄λΈ”μ— <th></th> λ„£μ–΄


μ΄λ ‡κ²Œ μ‚¬μš©

`ν•¨μˆ˜ ν˜•μ‹ (d) {
// console.log (d);
var data = "

"+
""+
" "+
" "+
" "+
" "+
" "+
" "+
" "+
// " "+
" ";
$(d.fornecedores).each(function (key, value) {

    // $(value.pagamentos).each(function (key, value1) {
    //     console.log(value1.html);
    // });


    data += '<tr>' +
        '<td>' + value.nome + '</td>' +
        '<td>' + value.nome + '</td>' +
        '<td>' + value.nome + '</td>' +
        '<td>' + value.nome + '</td>' +
        '<td>' + value.nome + '</td>' +
        '<td>' + value.nome + '</td>' +
        '<td>' + value.nome + '</td>' +
        //'<td>' + value.emitido + '</td>' +
        '</tr>';
});
return data;

}

`

μ‹ λΆ„μ¦μ‹œμž‘μΌκ²€μ¦ λ¨μ ˆμ°¨μ£Όμ†ŒμΌλ°˜ μ°Έκ³  μ‚¬ν•­μ§€λΆˆλ°œν–‰ 된

κ°μ‚¬ν•©λ‹ˆλ‹€ @gordett. 더 이상 데이터 ν…Œμ΄λΈ”μ„ μ‚¬μš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. vuejs둜 λ‚˜λ§Œμ˜ ν…Œμ΄λΈ” ꡬ성 μš”μ†Œλ₯Ό λΉŒλ“œν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

λ‹΅μž₯을 보내 μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€

μ•ˆλ…•ν•˜μ„Έμš”, angularμ—μ„œ jquery datatable을 μ‚¬μš©ν•˜λŠ” λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. λ¬Έμ œλŠ” λ‚΄ th와 td λͺ¨λ‘ APIμ—μ„œ μ™”μ§€λ§Œ 처음과 두 번째둜 μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€λ§Œ μ˜¬λ°”λ₯Έ 데이터λ₯Ό ν‘œμ‹œν•˜μ§€λ§Œ ν•„ν„° 및 검색은 이전 λ°μ΄ν„°μ—μ„œλ§Œ μž‘λ™ν•©λ‹ˆλ‹€.
λˆ„κ΅¬λ‚˜μ΄ 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

tabledestroy μ‚¬μš©

if ($ .fn.DataTable.isDataTable ( '# mytable2'))
{
$ ( '# mytable2'). DataTable (). destroy ();
}
$ ( '# mytable2 tbody'). empty ();

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰