copy-paste-template / select-2-laravel

SELECT 2 LARAVEL

Description

This template is used to implement select2 in Laravel. Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.

Template

  • Controller

    use App\Models\ModelName;
    
    public function getSelect2Data(Request $request)
    {
        $search = $request->search;
        $data = ModelName::where('name', 'like', "%$search%")->get();
        return response()->json($data);
    }
    
  • Blade for input

    <select class="form-control" name="name" id="select-name">
      <option value="">Select Name</option>
    </select>
    
    <script>
      $('#select-name').select2({
          placeholder: 'Select Name',
          ajax: {
              url: '{{ route('route_name') }}',
              dataType: 'json',
              delay: 250,
              processResults: function (data) {
                  return {
                      results: $.map(data, function (item) {
                          return {
                              text: item.name,
                              id: item.id
                          }
                      })
                  };
              },
              cache: true
          }
      });
    </script>
    
  • Blade for filter (with all option)

    <select class="form-control" name="name" id="filter-name">
      <option value="">Select Name</option>
    </select>
    
    <script>
      $('#filter-name').select2({
          placeholder: 'Select Name',
          allowClear: true,
          ajax: {
              url: '{{ route('route_name') }}',
              dataType: 'json',
              delay: 250,
              processResults: function (data) {
                  data.unshift({id: '', name: 'All'});
                  return {
                      results: $.map(data, function (item) {
                          return {
                              text: item.name,
                              id: item.id
                          }
                      })
                  };
              },
              cache: true
          }
      });
    </script>
    
SElect 2 Laravel | copy-paste-template | Study Notes | Ferdyhape