Select2 Js Loading Remote Data With Ajax April 21, 2024 Post a Comment I am using Select2 JS Version 4.0.0-rc.1 and having trouble loading suggestions with remote Ajax method. Below are the markups and code Solution 1: Your response is being returned as a Select2 3.x response, which is fine. We've provided the processResults method because of this (previously results) so you can modify the response on the client side.In your case, your response includes the results key but your processResponse function is referencing a result key which does not exist. If you change it to something likeprocessResults: function (data, page) { // 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 datareturn { results: data.results, pagination: { more: data.more } }; }, CopyThen things should start working. This also maps the existing more property on the response to the new pagination key that we migrated to in Select2 4.0.Solution 2: Your Json response has to be like this :{"total_count":2,"items":[{"id":"01","name":"item 1"},{"id":"02","name":"item 2"}]}CopyTo work, you an id property.Here is my config :function formatRepo (repo) { if (repo.loading) return repo.text; var markup = "<div class='select2-result-repository clearfix'><div class='select2-result-repository__img'><img src='" + repo.img + "' width='80' height='80' /></div><div class='select2-result-repository__meta'><div class='select2-result-repository__title'>" + repo.full_name + "</div>"; markup += "<div class='select2-result-repository__statistics'><div class='select2-result-repository__type'><i class='fa fa-flash'></i> Type : " + repo.type + "</div><div class='select2-result-repository__usecase'><i class='fa fa-eye'></i> Use case : " + repo.usecase + "</div></div></div></div>"; return markup; } function formatRepoSelection (repo) { return repo.full_name; } // Init select2 $(".select2").select2({ ajax: { type : "GET", url : "{{ path('tag_search_js') }}", dataType: 'json', delay : 250, data : function (params) { return { q: params.term, // search term page: params.page }; }, processResults: function (data, params) { params.page = params.page || 1; return { results: data.items, pagination: { more: (params.page * 30) < data.total_count } }; }, cache: true }, placeholder: "Select a tag", escapeMarkup: function (markup) { return markup; }, minimumInputLength: 1, templateResult: formatRepo, templateSelection: formatRepoSelection }); CopyHope this helps ! Share Post a Comment for "Select2 Js Loading Remote Data With Ajax"
Post a Comment for "Select2 Js Loading Remote Data With Ajax"