JQuery Select2 и JS плагин Struts 2

0

Я пытаюсь заполнить Struts2 JSON и Select2 a select. Сервер возвращает JSON следующим образом:

{"orphanets":[{"idDiagOrphanet":11509,"nomDiagOrphanet":"FACOMATOSIS CESIOFLAMMEA"},{"idDiagOrphanet":21782,"nomDiagOrphanet":"AUTOINFLAMMATION"}]}

Как я могу форматировать/анализировать результат, чтобы заставить его работать? Я знаю, что он ожидает поля "id" и "text", но не может заставить его работать:

 $("#selCodOrphanet").select2({
    quietMillis: 300,
    placeholder: "Buscar diag. Orphanet...",
    minimumInputLength: 4,
    ajax: {
        url: '../json/getOrphanets',
        dataType: 'json',
        data: function (term, page) {
          return {
            term: term
          };
        },                  
        results: function (data, page) {
          return { results: data.orphanets };
        },
        id: function(item) {
          return item.idDiagOrphanet; 
        },
        formatResult: function(item) { 
            return "<div class='select2-user-result'>" + item.nomDiagOrphanet + "</div>"; 
        }
    }
});
Теги:
jquery-select2
struts2

2 ответа

0

Пытаться

 $("#selCodOrphanet").select2({
    placeholder: "Buscar diag. Orphanet...",
    minimumInputLength: 4,
    ajax: {
        url: '<s:url namespace="/json" action="getOrphanets"/>',
        dataType: 'json',
        quietMillis: 100,
        data: function (term, page) {
          return {
            term: term
          };
        },                  
        results: function (data, page) {
          return { results: data.orphanets };
        },
        id: function(item) {
          return item.idDiagOrphanet; 
        },
        formatResult: function(item) { 
            return "<div class='select2-user-result'>" + item.nomDiagOrphanet + "</div>"; 
        }
        escapeMarkup: function (m) { return m; }  
    }
});

Добавлено квалифицированное сопоставление URL-адресов для действия getOrphanets с пространством имен /json. Соответствующая конфигурация должна быть выполнена. Не избегайте разметки, так как вы показываете HTML в результатах.

0

Я попытался немного поискать, но не нашел id: function(item) {

В любом случае, здесь быстро исправить

  1. Рассмотрите ответ как обычную строку
  2. замените idDiagOrphanet на id и nomDiagOrphanet с text а затем верните эту строку вместо return { results: data.orphanets };

Другой способ: изменение объекта JSON путем создания нового поля с использованием существующих элементов

var ornts= data.orphanets;
var new_obj ;
for(var i=0; i<data.orphanets.length; i++){
    var person = persons[i];
    new_obj.push({
        id: ornts.idDiagOrphanet,
        text: ornts.nomDiagOrphanet,
    });
}

return new_obj;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню