2015-10-20 3 views
3

Прежде всего, вот мой код.Laravel 5 с Select2, Загрузка данных с помощью ajax

Мой маршрут:

Route::get('cities/citybylang/{lang_id}', [ 
     'uses' => '[email protected]', 
     'as' => 'dashboard.cityByLanguage' 
]); 

Мой контроллер:

public function cityByLanguage($lang_id){ 
    $cities = City::select('name','id')->where('lang_id',$lang_id)->get(); 

    return $cities; 
} 

мой взгляд выбрать

<select class="js-data-example-ajax"> 
    <option value="3620194" selected="selected">select2/select2</option> 
</select> 

Мой Выбор2 код

$(".js-data-example-ajax").select2({ 
        ajax: { 
        url: "/dashboard/cities/citybylang/1", 
        dataType: 'json', 
        delay: 250, 

        data: function (params) { 
         console.log(params.term); 
         return { 
         q: params.term, // search term 
         page: params.page, 
         name: params.name 
         }; 
        }, 
        beforeSend: function(jqXHR, settings) { 
          console.log(settings.url); 
        }, 
        processResults: function (data, page) { 
         console.log(data); 

         // parse the results into the format expected by Select2. 
         // since we are using custom formatting functions we do not need to 
         // alter the remote JSON data 
         return { 
         results: data 
         }; 
        }, 
        cache: true 
        }, 
        escapeMarkup: function (markup) { return markup; }, // let our custom formatter work 
        minimumInputLength: 1, 
        templateResult: formatRepo, // omitted for brevity, see the source of this page 
        templateSelection: formatRepoSelection // omitted for brevity, see the source of this page 
       }); 
      }); 


      function formatRepo (repo) { 
       if (repo.loading) return repo.text; 
       var markup = '<div class="clearfix">' + 
       '<div clas="col-sm-10">' + 
       '<div class="clearfix">' + 
       '<div class="col-sm-6">' + repo.name + '</div>' + 
       '<div class="col-sm-3"><i class="fa fa-code-fork"></i> ' + repo.name + '</div>' + 
       '<div class="col-sm-2"><i class="fa fa-star"></i> ' + repo.name + '</div>' + 
       '</div>'; 

       if (repo.name) { 
        markup += '<div>' + repo.name + '</div>'; 
       } 

       markup += '</div></div>'; 

       return markup; 
      } 


      function formatRepoSelection (repo) { 
       return repo.name || repo.text; 
      } 

Okey, основная проблема заключается в том, что я не могу передать правильный параметр контроллеру. Вот как эта работа теперь: я начинаю вводить в поле выбора и дать список с городами, которая имеет lang_id = 1.
Поэтому вызов Ajax отправить на контроллер:
somthing.com/ ? приборная панель/города/citybylang/1 д = [значение, то, что я типа в поле выбора]
У меня есть довольно URL, так что я хочу что-то вроде этого:
somthing.com/dashboard/cities/citybylang/ [ значение, которое я набираю в поле выбора]


Итак, вопрос в том, как передать параметр контроллеру в правильный путь?

ответ

1

Этот вопрос старый, но я искал то же самое, что и я его создал.

url: function(params) { 
    return '/some/url/' + params.term; 
}, 

Вот ссылка ссылка https://select2.github.io/options.html

Смежные вопросы