Laravel-datatables: рдЪрд╛рдЗрд▓реНрдб рд░реЛ / рдЪрд╛рдЗрд▓реНрдб рдбрд┐рдЯреЗрд▓ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 8 рдордИ 2015  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: yajra/laravel-datatables

рдЬреИрд╕рд╛ рдХрд┐ рд╢реАрд░реНрд╖рдХ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреА рддрд░рд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдкрдВрдХреНрддрд┐ рдмрдЪреНрдЪрд╛ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ: рдбреА
https://www.datatables.net/examples/api/row_details.html

рд╕рд╛рджрд░

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдпрд╣ рд╕рдм рдЕрдкрдиреЗ рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рдХреИрд╕реЗ рдХрд┐рдпрд╛, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЬреЗрдПрд╕ рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдЕрд╕рд▓ рдореЗрдВ рд╣рдо рдЬреЗрдПрд╕ рдХреЛ рдХреЙрд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рд▓рд╛рд░реНрд╡рд╛ рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ,

$model = User::all();
if (request()->ajax()) {
   return DataTables::make($model)
    ->addIndexColumn()
    ->addColumn('handleBarColumn',function(User $userData){
            return view('admin.pages.forms.handleBarInfo',compact('userData'));
    })
    ->rawColumns(['handleBarColumn'])
        ->toJson();
}
$html = $builder->columns([
       ['title' => '','className' => 'details-control','orderable'  => false, 'data' => null,'searchable' => false,'defaultContent' => '','width' => '20px'],
    // ['data' => 'DT_RowIndex', 'name' => 'DT_RowIndex', 'title' => '#','orderable' => 'false','searchable' => 'false'],
       ['data' => 'email', 'name' => 'email', 'title' => 'Email'],
       ['data' => 'handleBarColumn', 'name' => 'handleBarColumn', 'title' => '','visible' => false,'orderable'  => false]
  ])->parameters([
            'dom'           => 'Bfrtip',
            'paging'        => true,
            'searching'     => true,
            'info'          => true,
            'buttons'       => [ 'csv' , 'excel' , 'pdf'],
            'order'         => [1,'asc'],
            'drawCallback' => 'function () {
                function format ( d ) {
                    return d.handleBarColumn;
                }
                let table = $("#formDataTables").DataTable();
                $("#formDataTables tbody").on("click", "td.details-control", function () {
                    let tr = $(this).closest("tr");
                    let row = table.row( tr );
                    if ( row.child.isShown() ) {
                        row.child.hide();
                        tr.removeClass("shown");
                    }
                    else {
                        row.child(format(row.data())).show();
                        tr.addClass("shown");
                    }
                });
            }',
        ]);

рдЕрдм рдЕрдВрдд рдореЗрдВ рдмреНрд▓реЗрдб рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ (рдЬреЛ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реИ "рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ> рдкреГрд╖реНрда> рдкреНрд░рдкрддреНрд░> рд╣реИрдВрдбрд▓рдмрд╛рд░рдЗрдиреНрдлреЛ.рдмреНрд▓реЗрдб.php") рдЖрдк рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдХреЛрдИ рднреА рд╢рд░реНрдд рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ

{{ $userData->email }}

рдФрд░ рдпрд╣рд╛рдБ рдореЗрд░реА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд╣рд╛рдБ рд╕рднреА рдбреЗрдЯрд╛рдЯреЗрдмрд▓реНрд╕ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ

@extends('admin.layout.app')

@section('content')
    <div class="ibox">
        <div class="ibox-content">
            <div class="row">
                <div class="col-md-12">
                    <div class="table-responsive">
                    {!! $html->table(['class' => 'table table-striped table-bordered', 'id' => 'formDataTables']) !!}
                    </div>
                </div>
            </div>
        </div>
    </div>
<strong i="12">@endsection</strong>
@section('styles')
    <style>
        #formDataTables tbody td.details-control {
            background-image: url('{{ asset('assets/admin/images/details_open.png') }}');
            cursor: pointer;
            background-repeat:  no-repeat;
            background-position: center;
            background-origin: content-box;
            background-size: cover;
            padding: 7px;
        }
        #formDataTables tbody tr.shown td.details-control {
            background-image: url('{{ asset('assets/admin/images/details_close.png') }}');
            cursor: pointer;
            background-repeat:  no-repeat;
            background-position: center;
            background-origin: content-box;
            background-size: cover;
            padding: 7px;
        }

        #formDataTables tbody tr .rowDetails p {
            font-size: 14px;
            font-weight: 800;
            float: left;
            margin-right: 10px;
            padding: 1px;
            margin-bottom: 0;
        }
        #formDataTables tbody tr .rowDetails a{

        }
        #formDataTables tbody tr .rowDetails td{
            padding: 5px;
        }
        .m-r-10{
            margin-right: 10px !important;
        }
    </style>
<strong i="13">@endsection</strong>
@section('scripts')
    {!! $html->scripts() !!}
<strong i="14">@endsection</strong>

рд╕рднреА 9 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдирдорд╕реНрддреЗ,

рдмрд╕ рдЙрд╕ рд▓рд┐рдВрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ рдЬреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрдХреНрд╖ рдкрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдбреАрдЯреА рдХреА рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рджреВрд╕рд░реА рдУрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдЙрд╕ рдбреЗрдореЛ рдРрдк рдкрд░ рдЬреЛрдбрд╝ рджреВрдВрдЧрд╛ рдЬрд┐рд╕ рдкрд░ рдореИрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдкрдВрдХреНрддрд┐ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдбреЗрдореЛ рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдкрд░ рдЖрдкрдХреЛ рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд░рд╣реЗрдЧрд╛ред рдпрд╣ рднреА рджреЗрдЦреЗрдВ рдХрд┐ рдХреБрдЫ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдкрд░ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред

рдЪреАрдпрд░реНрд╕!

рдиреАрдЪреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

var table = $('#users-table').DataTable({
        processing: true,
        serverSide: true,
        ajax: '{{ url("users-data") }}',
        columns: [
            {
                "className":      'details-control',
                "orderable":      false,
                "data":           null,
                "defaultContent": ''
            },
            {data: 'id', name: 'id'},
            {data: 'name', name: 'name'},
            {data: 'email', name: 'email'},
            {data: 'created_at', name: 'created_at'},
            {data: 'updated_at', name: 'updated_at'}
        ],
        order: [[1, 'asc']]
    });

    // Add event listener for opening and closing details
    $('#users-table 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( format(row.data()) ).show();
            tr.addClass('shown');
        }
    });

    /* Formatting function for row details - modify as you need */
    function format ( d ) {
        // `d` is the original data object for the row
        return '<table class="table">'+
            '<tr>'+
                '<td>Full name:</td>'+
                '<td>'+d.name+'</td>'+
                '</tr>'+
            '<tr>'+
                '<td>Email:</td>'+
                '<td>'+d.email+'</td>'+
                '</tr>'+
            '<tr>'+
                '<td>Extra info:</td>'+
                '<td>And any further details here (images etc)...</td>'+
                '</tr>'+
            '</table>';
    }

рдЖрдкрдХреЗ рдирд┐рдпрдВрддреНрд░рдХ рдкрд░

public function getUsersData()
{
        $users = User::select(['id', 'name', 'email', 'created_at', 'updated_at']);

        return Datatables::of($users)->make(true);
}

рдбреЗрдореЛ рдРрдк рдкрд░ рдкрдВрдХреНрддрд┐ рд╡рд┐рд╡рд░рдг рдЙрджрд╛рд╣рд░рдг рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдХрд╛рдо рдкреВрд░рд╛ рд╣реБрдЖ, рдмрд╕ рдЗрд╕реЗ рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

рдЬреЗрдПрд╕ рддреНрд░реБрдЯрд┐ рдкрд░ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдЖрдкрдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдРрд╕рд╛ рдХреБрдЫ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣реИрдВрдбрд▓ рдмрд╛рд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдлрд┐рд░ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рдирд╛ template(row.data()) ред

var template = Handlebars.compile($("#details-template").html());

// Add event listener for opening and closing details
    $('#users-table 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');
        }
    });

рд╣рд╛рдБ рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдХреЛрдб рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдореБрдЭреЗ 'рдХрд╛рд░реНрд░рд╡рд╛рдИ' рдХреЗ рдмрд╛рдж рдЕрдиреНрдп рдбреЗрдЯрд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ,
рд╡рд┐рд╡рд░рдг рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдмрд╛рдИрдВ рдУрд░ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдЗрдХрди рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИ.. рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдиреЗ рдбреЗрдореЛ рд╕реЗ рдмрдЯрди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ :?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реАрдПрд╕рдПрд╕ рдЕрднреА рддрдХ рдбрд╛рд▓рд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИ ..
рдореЗрд░рд╛ рдмреБрд░рд╛, рддреЗрдЬрд╝ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж: +1:

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдпрд╣ рд╕рдм рдЕрдкрдиреЗ рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рдХреИрд╕реЗ рдХрд┐рдпрд╛, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЬреЗрдПрд╕ рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдЕрд╕рд▓ рдореЗрдВ рд╣рдо рдЬреЗрдПрд╕ рдХреЛ рдХреЙрд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рд▓рд╛рд░реНрд╡рд╛ рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ,

$model = User::all();
if (request()->ajax()) {
   return DataTables::make($model)
    ->addIndexColumn()
    ->addColumn('handleBarColumn',function(User $userData){
            return view('admin.pages.forms.handleBarInfo',compact('userData'));
    })
    ->rawColumns(['handleBarColumn'])
        ->toJson();
}
$html = $builder->columns([
       ['title' => '','className' => 'details-control','orderable'  => false, 'data' => null,'searchable' => false,'defaultContent' => '','width' => '20px'],
    // ['data' => 'DT_RowIndex', 'name' => 'DT_RowIndex', 'title' => '#','orderable' => 'false','searchable' => 'false'],
       ['data' => 'email', 'name' => 'email', 'title' => 'Email'],
       ['data' => 'handleBarColumn', 'name' => 'handleBarColumn', 'title' => '','visible' => false,'orderable'  => false]
  ])->parameters([
            'dom'           => 'Bfrtip',
            'paging'        => true,
            'searching'     => true,
            'info'          => true,
            'buttons'       => [ 'csv' , 'excel' , 'pdf'],
            'order'         => [1,'asc'],
            'drawCallback' => 'function () {
                function format ( d ) {
                    return d.handleBarColumn;
                }
                let table = $("#formDataTables").DataTable();
                $("#formDataTables tbody").on("click", "td.details-control", function () {
                    let tr = $(this).closest("tr");
                    let row = table.row( tr );
                    if ( row.child.isShown() ) {
                        row.child.hide();
                        tr.removeClass("shown");
                    }
                    else {
                        row.child(format(row.data())).show();
                        tr.addClass("shown");
                    }
                });
            }',
        ]);

рдЕрдм рдЕрдВрдд рдореЗрдВ рдмреНрд▓реЗрдб рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ (рдЬреЛ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реИ "рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ> рдкреГрд╖реНрда> рдкреНрд░рдкрддреНрд░> рд╣реИрдВрдбрд▓рдмрд╛рд░рдЗрдиреНрдлреЛ.рдмреНрд▓реЗрдб.php") рдЖрдк рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдХреЛрдИ рднреА рд╢рд░реНрдд рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ

{{ $userData->email }}

рдФрд░ рдпрд╣рд╛рдБ рдореЗрд░реА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд╣рд╛рдБ рд╕рднреА рдбреЗрдЯрд╛рдЯреЗрдмрд▓реНрд╕ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ

@extends('admin.layout.app')

@section('content')
    <div class="ibox">
        <div class="ibox-content">
            <div class="row">
                <div class="col-md-12">
                    <div class="table-responsive">
                    {!! $html->table(['class' => 'table table-striped table-bordered', 'id' => 'formDataTables']) !!}
                    </div>
                </div>
            </div>
        </div>
    </div>
<strong i="12">@endsection</strong>
@section('styles')
    <style>
        #formDataTables tbody td.details-control {
            background-image: url('{{ asset('assets/admin/images/details_open.png') }}');
            cursor: pointer;
            background-repeat:  no-repeat;
            background-position: center;
            background-origin: content-box;
            background-size: cover;
            padding: 7px;
        }
        #formDataTables tbody tr.shown td.details-control {
            background-image: url('{{ asset('assets/admin/images/details_close.png') }}');
            cursor: pointer;
            background-repeat:  no-repeat;
            background-position: center;
            background-origin: content-box;
            background-size: cover;
            padding: 7px;
        }

        #formDataTables tbody tr .rowDetails p {
            font-size: 14px;
            font-weight: 800;
            float: left;
            margin-right: 10px;
            padding: 1px;
            margin-bottom: 0;
        }
        #formDataTables tbody tr .rowDetails a{

        }
        #formDataTables tbody tr .rowDetails td{
            padding: 5px;
        }
        .m-r-10{
            margin-right: 10px !important;
        }
    </style>
<strong i="13">@endsection</strong>
@section('scripts')
    {!! $html->scripts() !!}
<strong i="14">@endsection</strong>

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдпрд╣ рд╕рдм рдЕрдкрдиреЗ рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рдХреИрд╕реЗ рдХрд┐рдпрд╛, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЬреЗрдПрд╕ рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдЕрд╕рд▓ рдореЗрдВ рд╣рдо рдЬреЗрдПрд╕ рдХреЛ рдХреЙрд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рд▓рд╛рд░реНрд╡рд╛ рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ,

$model = User::all();
if (request()->ajax()) {
   return DataTables::make($model)
  ->addIndexColumn()
  ->addColumn('handleBarColumn',function(User $userData){
          return view('admin.pages.forms.handleBarInfo',compact('userData'));
  })
  ->rawColumns(['handleBarColumn'])
        ->toJson();
}
$html = $builder->columns([
       ['title' => '','className' => 'details-control','orderable'  => false, 'data' => null,'searchable' => false,'defaultContent' => '','width' => '20px'],
    // ['data' => 'DT_RowIndex', 'name' => 'DT_RowIndex', 'title' => '#','orderable' => 'false','searchable' => 'false'],
       ['data' => 'email', 'name' => 'email', 'title' => 'Email'],
       ['data' => 'handleBarColumn', 'name' => 'handleBarColumn', 'title' => '','visible' => false,'orderable'  => false]
  ])->parameters([
            'dom'           => 'Bfrtip',
            'paging'        => true,
            'searching'     => true,
            'info'          => true,
            'buttons'       => [ 'csv' , 'excel' , 'pdf'],
            'order'         => [1,'asc'],
            'drawCallback' => 'function () {
                function format ( d ) {
                    return d.handleBarColumn;
                }
                let table = $("#formDataTables").DataTable();
                $("#formDataTables tbody").on("click", "td.details-control", function () {
                    let tr = $(this).closest("tr");
                    let row = table.row( tr );
                    if ( row.child.isShown() ) {
                        row.child.hide();
                        tr.removeClass("shown");
                    }
                    else {
                        row.child(format(row.data())).show();
                        tr.addClass("shown");
                    }
                });
            }',
        ]);

рдЕрдм рдЕрдВрдд рдореЗрдВ рдмреНрд▓реЗрдб рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ (рдЬреЛ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реИ "рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ> рдкреГрд╖реНрда> рдкреНрд░рдкрддреНрд░> рд╣реИрдВрдбрд▓рдмрд╛рд░рдЗрдиреНрдлреЛ.рдмреНрд▓реЗрдб.php") рдЖрдк рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдХреЛрдИ рднреА рд╢рд░реНрдд рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ

{{ $userData->email }}

рдФрд░ рдпрд╣рд╛рдБ рдореЗрд░реА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд╣рд╛рдБ рд╕рднреА рдбреЗрдЯрд╛рдЯреЗрдмрд▓реНрд╕ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ

@extends('admin.layout.app')

@section('content')
    <div class="ibox">
        <div class="ibox-content">
            <div class="row">
                <div class="col-md-12">
                    <div class="table-responsive">
                    {!! $html->table(['class' => 'table table-striped table-bordered', 'id' => 'formDataTables']) !!}
                    </div>
                </div>
            </div>
        </div>
    </div>
<strong i="13">@endsection</strong>
@section('styles')
    <style>
        #formDataTables tbody td.details-control {
            background-image: url('{{ asset('assets/admin/images/details_open.png') }}');
            cursor: pointer;
            background-repeat:  no-repeat;
            background-position: center;
            background-origin: content-box;
            background-size: cover;
            padding: 7px;
        }
        #formDataTables tbody tr.shown td.details-control {
            background-image: url('{{ asset('assets/admin/images/details_close.png') }}');
            cursor: pointer;
            background-repeat:  no-repeat;
            background-position: center;
            background-origin: content-box;
            background-size: cover;
            padding: 7px;
        }

        #formDataTables tbody tr .rowDetails p {
            font-size: 14px;
            font-weight: 800;
            float: left;
            margin-right: 10px;
            padding: 1px;
            margin-bottom: 0;
        }
        #formDataTables tbody tr .rowDetails a{

        }
        #formDataTables tbody tr .rowDetails td{
            padding: 5px;
        }
        .m-r-10{
            margin-right: 10px !important;
        }
    </style>
<strong i="14">@endsection</strong>
@section('scripts')
    {!! $html->scripts() !!}
<strong i="15">@endsection</strong>

рдХреНрдпрд╛ рд╣рдо рдЕрдкрдиреЗ PHP рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдЕрдВрджрд░ AJAX рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ? рдЬреИрд╕реЗ рдЖрдк рдХрд░рддреЗ рд╣реИрдВ, рдЖрдк рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдЕрдВрджрд░ рдЬреЗрдПрд╕ рдХреЙрд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдЕрдЧрд░ рд╣рдо рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдЬреЗрдПрд╕ рдХреЗ рдЕрдВрджрд░ рдЕрдЬрд╛рдХреНрд╕ рдбрд╛рд▓рддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреБрд░рд╛рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, @vipertecpro , рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЯреЗрдмрд▓ рд░реАрд▓реЛрдб рдкрд░ drawCallback рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрдм рдЖрдк рдЕрдкрдирд╛ рдкреГрд╖реНрда рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЖрдкрдХреЛ рдбреЗрдЯрд╛рдЯреЗрдмрд▓ (рдкреВрд░реЗ рдкреГрд╖реНрда рдкрд░ рдирд╣реАрдВ) рдкреБрдирдГ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдлрд┐рд░ рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рджреЛ рдмрд╛рд░ (рд╢реЛ-рдЫрд┐рдкрд╛рдПрдВ) рдЪрд▓рддрд╛ рд╣реИ (рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рджрд┐рдЦрд╛рддреА рд╣реИ)ред рдпрджрд┐ рдЖрдк рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рддреАрди рдмрд╛рд░ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдЦрд╛рдИ рдЬрд╛рддреА рд╣реИ (рд╢реЛ-рдЫреБрдкрд╛-рд╢реЛ) рдФрд░ рдЗрд╕реА рддрд░рд╣ ....

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП 'initComplete' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕