【问题标题】:Filtering Datatables through a multiselect dropdown list in laravel通过 laravel 中的多选下拉列表过滤数据表
【发布时间】:2020-03-24 16:59:25
【问题描述】:

我在 ajax 中有一个选择下拉功能,并成功地将数据提取到数据表中。但是,我尝试在我的 ajax 函数中添加多个以获取多选函数。但是,它不能很好地工作。这是我的控制器:

public function fnFilter(Request $request)
{

    if(request()->ajax())
     {
      if(!empty($request->dataGender))
      {
       $data = DB::table('modified_dpprs')
         ->select('id', 'Fn', 'Ln', 'Umur', 'Phone', 'Dob','St', 'Country','Zip','Ct','Jantina')
         ->where('Jantina', $request->dataGender)
         ->where('Bangsa_updated', $request->ethnicity)
         ->get();
      }
      else
      {
       $data = DB::table('modified_dpprs')
         ->select('id', 'Fn', 'Ln', 'Umur', 'Phone', 'Dob','St', 'Country','Zip','Ct','Jantina')
         ->get();
      }
      return datatables()->of($data)->make(true);
     }

    $dataName = DB::table('modified_dpprs')
                    ->select('Age')
                    ->groupBy('Age')
                    ->orderBy('Age', 'ASC')
                    ->get();

    return view('pages.custom', compact('dataName'));   
}

脚本:

<script>
  $(document).ready(function(){

      fill_datatable();

      function fill_datatable(dataAge = '')
      {
          var dataTable = $('#table_data').DataTable({
              processing: true,
              serverSide: true,
              ajax:{
                data:{dataAge:dataAge}
              },
              columns: [
                  {
                      data:'id',
                      name:'id'
                  },
                  {
                      data:'Fn',
                      name:'Fn'
                  },
                  {
                      data:'Ln',
                      name:'Ln'
                  }

              ]


          });
      }

刀片:

<select id="dataAge" class="form-control select2-allow-clear"  style="width:200px;" name="Age" >
                                                                            <option value="">Select</option>
                                                                                @foreach ( $dataName as $item)
                                                                                <option value="{{$item->Age}}">{{$item->Age}}</option>
                                                                                @endforeach
                                                                        </select>

我应该怎么做才能从多选下拉列表中获取数据到数据表?

【问题讨论】:

  • 检查你的ajax,我认为它是错误的,还有获取下拉数据的ajax。

标签: ajax laravel


【解决方案1】:
 $.ajax({
         url:"getDataAge",
         type: "POST",
         data:{_token:csrf_token},
         success:function (result) {
         var options_grp = "";
         options_grp = "<option></option>";
         for(i=0;i<result.length;i++){
             options_grp = options_grp + "<option  value='" +result[i].name+"_"+result[i].id+"'>"+result[i].name+"</option>"
         }
         $(options_grp).appendTo('#dataAge');
       }
     });
     $('#dataAge').select2({placeholder: "Select Legal Category *"})

试试这个代码,并获取后端并相应地更改 id 的名称,同时根据您的 API 端点名称更改上面的 url。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-10
    • 1970-01-01
    • 2021-08-24
    • 2017-09-09
    • 2021-12-03
    • 1970-01-01
    • 2018-01-17
    • 2019-01-29
    相关资源
    最近更新 更多