2017-04-03 2 views
0

Ich habe nach Lösungen gesucht, um das Folgeproblem zu lösen, aber vorherige Fragen, die ich gelesen habe, haben keine erfolgreichen Ergebnisse ergeben.Select2 mehrere ausgewählte Optionen einstellen

Ich habe ein JSON-codiertes Array in einer Datenbank gespeichert, zum Beispiel ["2",2,5]. Ich muss den ersten Wert aus dem Array abschneiden und die restlichen Elemente verwenden, um bestimmte Optionen in einem Mehrfachauswahlfeld auszuwählen. Meine aktuelle Lösung zeigt die Option an, die dem ersten Wert des verbleibenden Arrays entspricht, aber nicht dem zweiten. Irgendwelche Vorschläge?

$("#sltETags").select2({ placeholder: 'Select a Primary Tag', minimumResultsForSearch: 8}).select2('val', [<?php $LstTags = json_decode($row["Tags"]); for($i = 1; $i < count($LstTags); $i++){ if($i != count($LstTags)-1){ echo '"'.$LstTags[$i].'",'; } else { echo '"'.$LstTags[$i].'"'; }} ?>]); 

Outcome

$("#sltETags").select2({ placeholder: 'Select a Primary Tag', minimumResultsForSearch: 8}).select2('val', ["2","5"]); 

HTML-Code

<select class="form-control select2" multiple="multiple" data-placeholder="Select Secondary Tags" id="sltETags"> 
    <?php 
    $LstTags = $TagManager->displayTags(0); 
    for($i = 0; $i < count($LstTags); $i++){ 
     ?><option value="<?php echo $LstTags[$i][0]; ?>"><?php echo $LstTags[$i][1]; ?></option><?php 
    } ?> 
</select> 

Antwort

0

Es scheint, das Problem der Javascript-Funktion war es, die ausgewählten Elemente zu ändern. Mein Fix ist unter:

  <?php 

       $LstTags = json_decode($row["Tags"]); 

       for($i = 1; $i < count($LstTags); $i++){ 
        $LstTags[$i] = "$LstTags[$i]"; 
       } 

       $LstTags = json_encode($LstTags); 

      ?> 
      $("#sltETags").select2({ placeholder: 'Select a Primary Tag', minimumResultsForSearch: 8}); 
      $("#sltETags").val(<?php echo $LstTags; ?>).select2(); 
Verwandte Themen