select2 initselection回调ajax - 不加载默认值

时间:2015-07-19 12:17:30

标签: javascript jquery ajax jquery-select2

我在我的项目中使用Select2,但我无法使用initselect。我需要使用默认值初始化select2。

这是js:

function format(item) { return item.text; }
var jresults;
    $.getJSON("ajax_select2.php?w=programma_rpp").done(
        function( data ) {
            $.jresults = data;
            $("#programma_rpp").select2({
                  placeholder: "Seleziona un opzione",
                  allowClear: true,
                  formatResult: format,
                  formatSelection: format,
                  data: $.jresults,
                  initSelection: function (element, callback) {
                    callback({id: '1', text: 'testtext' });
                }
              }
            );
        }
    )

php页面返回此json:

[{"id":"1","text":"1 Programma 1 : Organizzazione E Gestione Servizi Generali"},{"id":"2","text":"2 Programma 2 : Difesa E Sicurezza Del Cittadino"},{"id":"3","text":"3 Programma 3 : Pubblica Istruzione Ed Opportunita' Culturali, Sportive E Ricreative"},{"id":"4","text":"4 Programma 4 : Tutela Dell'ambiente E Gestione Del Territorio E Del Patrimonio"},{"id":"5","text":"5 Programma 5 : Manutenzione Patrimonio Comunale, Viabilità E Trasporti"},{"id":"6","text":"6 Programma 6 : Servizi Alla Persona E Adeguamento Delle Strutture Sociali"},{"id":"7","text":"7 Programma 7 : Servizi Produttivi Ed Interventi Nel Campo Dello Sviluppo Economico"},{"id":"8","text":"8 Programma 8 : Programma Degli Investimenti"}]

我在firebug中没有错误但是select2没有任何初始值。 我在stackoverflow上读了类似的(但不一定的)问题但是没有提出的解决方案适用于我。

提前谢谢,亲切的问候

1 个答案:

答案 0 :(得分:0)

经过一番研究后,我想出了这个解决方案:

$('programma_rpp').select2({
    placeholder: 'Seleziona..',
    minimumInputLength: 0,
    allowClear: true,
    multiple: false,
    ajax: { // instead of writing the function to execute the request we use Select2's convenient helper
      url: 'ajax_select2.php?w=programma_rpp',
      dataType: 'json',
      data: function (term) {
        return { q: term }; //search term
      },
      results: function (data) {
        return { results: data};
      }
    },
  });

初始化值我使用此

$('#programma_rpp').select2("data", {"id":"1","text":"1 Programma 1 : Organizzazione E Gestione Servizi Generali"} );

一切正常,我希望它可以帮助别人。