2013-07-12 14 views
17

È possibile in qualche modo ottenere risultati gruppo in un componente Select2 quando non utilizza il tag <select>, ma <input type="hidden"> ei risultati sono forniti come opzione "dati" nell'oggetto di configurazione?Raggruppamento dei risultati in Select2

var select2Options = { 
    data: { 
    results: myArrayOfResults 
    } 
}; 

risposta

35

Sì, gli oggetti results supportano un attributo children ...

così per esempio:

var select2Options = { 
    data: { 
    results: [ 
     {text: "My shiny group", children: [ 
      {id: 1, text: "My shiny item"}, 
      {id: 2, text: "My shiny item2"} 
     ]} 
    ] 
    } 
}; 
+0

sei sicuro? Non ha funzionato per me :( –

+1

Beh, è ​​piuttosto lungo che l'ho usato per ultimo ... Non so se funziona con la versione corrente di Select2. –

+0

ha funzionato per me ora, ma il titolo deve essere cambiato da testo., Grazie in ogni caso, dopo poche ore di arrotondamento, ottengo questa roba funzionante.Sono sicuro che il tuo post qui mi ha aiutato ancora! –

0

Per il carico di dati Ajax con il gruppo e il lavoro dei dati per me usando,

$arrFinal = array(array("name"=>"My shiny group 1", 
"children"=>array(array("id"=>1,"name"=>"My shiny item 11"),array("id"=>2,"name"=>"My shiny item 12")) 
),array("name"=>"My shiny group 2", 
"children"=>array(array("id"=>1,"name"=>"My shiny item 21"),array("id"=>2,"name"=>"My shiny item 22")) 
) 
); 
die(json_encode(array("result" => $arrFinal))); 

if formatResult: ratioFormatResult then, 
function ratioFormatResult(row) { 
// Here, you will get both group ("My shiny group 1") as well as data("My shiny item11") as row . 
} 

Per rendere il gruppo selezionabile utilizzare il campo id insieme al nome in gruppo.

Problemi correlati