首页 > 解决方案 > laravel 7中的Ajax数据表

问题描述

如何在 laravel 中使用 ajax 的数据表。请提供解决方案

响应来自服务器但未应用于数据表

标签: phpajaxlaravel

解决方案


在 javascript 文件中

$(document).ready(function () 
{
    var apptmntstatus = $("#status").val();

    function emergency_passportapps()
    {
        var table = $('#emergency_passportapps').DataTable({
            "ordering": true,
            "processing": true, 
            "serverSide": true, 
            "bDestroy": true,
            "order": [], 
            "language": {
                "paginate": {
                    "previous": '<i class="fa fa-arrow-left" aria-hidden="true"></i>',
                    "next": '<i class="fa fa-arrow-right" aria-hidden="true"></i>'
                }
            },

            "ajax": 
            {
                "url": baseurl+"emergency_passportapps",
                "type": "POST",
                "data": 
                {
                    "_token": $('#token').val(),
                    "emg_pass_date": $("#emg_pass_date").val(),
                },
                
            },
            "columns": [
                { "data": "id" },
                { "data": "applicant_name" },
                { "data": "applicant_passport_no" },
                { "data": "serviceapplied" },
                { "data": "description_emg" },
                { "data": "view" },
            ]   
        });
    
    }

    emergency_passportapps();

    $("#emg_pass_search").click(function(e){
        e.preventDefault();

        emergency_passportapps();
    });       
});

在控制器...

ini_set('memory_limit','2048M');

        $columns = array(0 =>'id', 
                         1 =>'appmnt_token', 
                         2 =>'appmnt_counter',
                         3=> 'appmnt_date',
                         4=> 'appmnt_time',
                         5=> 'applicant_name',
                         6=> 'applicant_passport_no',
                         7=> 'appointment_status',
                         8=> 'action',
                         9=> 'view'
                         );

        $length = (isset($_POST['length']) && $_POST['length'] != '') ? $_POST['length'] : '10';

        $start = (isset($_POST['start']) && $_POST['start'] != '') ? $_POST['start'] : '0';

        $searchablVal = $_POST['search']['value'];

        $ordercolumnName = $orderDir = null;
        $date = null;
        $datecond = null;
        $apptmntstatus = null;
        $start = $request->input('start');

        $limit = $request->input('length');

        if($limit !="")
        {
            $limit = $request->input('length');
        }else
        {
            $limit = 10;
        }
        $start = $request->input('start');
        $search = $request->input('search.value');
        $dir = $request->input('order.0.dir');

        $where = ['emergency_passport'=>'1'];

        if($request->emg_pass_date !="")
        {
            $emg_pass_date = date('Y-m-d',strtotime($request->emg_pass_date));
            $where['appmnt_date']=$emg_pass_date;
        }

        if($search =="")
        {
            $Querydata = $totalData=DB::table('appointment_register')->where($where);
            $TotaldataCount= $totalData->count();
            $Querydata = $Querydata->offset($start);
            $Querydata = $Querydata->limit($limit,$dir);
            $Querydata = $Querydata->orderBy('id',"DESC");
            $Querydata = $Querydata->get();

            $QuerydataTotal = $Querydata->count();

        }else
        {
            $Querydata = $totalData= DB::table('appointment_register')->where($where);
            $Querydata = $Querydata->where('apptmnt_unique_id', 'LIKE',"%{$search}%");
            $Querydata = $Querydata->orWhere('applicant_name', 'LIKE',"%{$search}%");
            $Querydata = $Querydata->where('emergency_passport','1');
            $Querydata = $Querydata->orWhere('applicant_passport_no', 'LIKE',"%{$search}%");
            $Querydata = $Querydata->where('emergency_passport','1');
            $Querydata = $Querydata->orWhere('serviceapplied', 'LIKE',"%{$search}%");
            $Querydata = $Querydata->where('emergency_passport','1');
            $Querydata = $Querydata->offset($start);
            $Querydata = $Querydata->limit($limit,$dir);
            $Querydata = $Querydata->orderBy('id',"DESC");
            $Querydata = $Querydata->get();

            $TotaldataCount=$QuerydataTotal = $Querydata->count();
        }

        $datares = [];

        $i = $start + 1;

        foreach ($Querydata as $val)
        {
            $nestedData = array();
            $appointment_action = '';
            $statusbtn ='';
            

            $nestedData['id'] = $i;
            $nestedData['applicant_name'] = $val->applicant_name;
            $nestedData['applicant_passport_no'] = $val->applicant_passport_no;
            $nestedData['serviceapplied'] = $val->serviceapplied;
            $nestedData['description_emg'] = $val->description_emg;

            $nestedData['view']=  '<a href="emergency_appointment_view/'.$val->id.'"  class="view" ><span class="glyphicon glyphicon-pencil apptmtview" data-id='.$val->id.'" aria-hidden="true"  title="View"></span></a>';

            $datares[] = $nestedData;  
            $i++;
        }

        $output = array(
                    "draw" => $_POST['draw'],
                    "recordsTotal" => $TotaldataCount,
                    "recordsFiltered" => $TotaldataCount,
                    "data" => $datares,
            ); 

        echo json_encode($output);

推荐阅读