2017-04-03 4 views
0

私はこれまでの質問には成功していませんでしたが、それに続く問題を解決するソリューションを探してきました。Select2複数選択されたオプションを設定

データベースに格納されているJSONエンコードされた配列を持っています(例:["2",2,5])。私は配列から最初の値を切り捨て、select2からの複数選択で特定のオプションを選択するために残りの項目を使用する必要があります。私の現在の解決策は、残りの配列の最初の値に対応するオプションを表示しますが、2番目の配列は表示しません。助言がありますか?

$("#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].'"'; }} ?>]); 

アウトカム

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

HTMLコード

<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> 

答えて

0

問題は、選択した項目を変更するにはJavascriptの関数であったようです。私の修正は以下の通りです:

  <?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(); 
関連する問題