2013-07-12 6 views
17

Ist es möglich, irgendwie zu Gruppe führen in einer Select2 Komponente, wenn es nicht <select>-Tag, aber <input type="hidden">, und die Ergebnisse werden als „Daten“ im Konfigurationsobjekt zur Verfügung gestellt?Gruppierung Ergebnisse in Select2

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

Antwort

35

Ja, die results Objekte ein children Attribut unterstützen ...

so zum Beispiel:

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

bist du sicher? Hat nicht funktioniert für mich :( –

+1

Nun, es ist ziemlich lange Zeit habe ich es zuletzt verwendet ... Ich weiß nicht, ob es mit der aktuellen Version von Select2 funktioniert. –

+0

arbeitete für mich jetzt, aber der Titel muss durch Text geändert werden Wie auch immer, nach ein paar Stunden, die ich rumgejubelt habe, habe ich dieses Zeug in Ordnung gebracht.Ich bin sicher, dass dein Beitrag hier mir noch geholfen hat! –

0

Für mit Gruppen- und Daten Arbeit für mich Ajax Laden von Daten verwenden,

$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 . 
} 

Um Gruppen auswählbar zu machen, benutzen Sie das ID-Feld zusammen mit dem Namen in Gruppe.