我一直在寻找解决问题的解决方案,不过我以前读过的问题都没有取得成功。
我有一个存储在数据库中的JSON编码数组,例如["2",2,5]
。我需要从数组中删除第一个值,并使用剩余的项目从select2中选择多个选项中的特定选项。我在下面显示的当前解决方案显示对应于剩余阵列的第一个值的选项,但不显示第二个。有什么建议吗?
$("#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 :(得分: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();