0

新しい商品の追加と ID 付きの商品の編集に同じフォームを使用しています。新しい製品を追加すると、そのカテゴリが select2 ドロップダウンから選択されます。しかし、既存の製品を編集するときに、そのカテゴリをデフォルトのオプションとして表示したいと考えています。initSelection で試してみましたが、この方法ではテキストのみが表示され、その値は未定義です。私のフォームの HTML コードは次のとおりです。

<form class="form-horizontal form-label-left" novalidate>
    <div class="item form-group">
        <label class="control-label col-md-3 col-sm-3 col-xs-12" >Category 
        </label>
        <div class="col-md-6 col-sm-6 col-xs-12">
           <select class="select2_single form-control col-md-7 col-xs-12" ></select>
        </div>
    </div>
    <div class="item form-group">
        <label class="control-label col-md-3 col-sm-3 col-xs-12" >Name <span class="required">*</span>
        </label>
        <div class="col-md-6 col-sm-6 col-xs-12">
            <input id="name" class="form-control col-md-7 col-xs-12" value="<?php echo $name; ?>"  placeholder="Product Name" required="required" type="text">
        </div>
    </div>
</form>

そして私のjqueryスクリプトは

<script>
$(document).ready(function () {         
        categories();
});
function categories() {
   $.ajax({
        'url' : 'category/data', 
        'success' : function(data){
            var j = $.parseJSON(data);
            var select2_ary = [];
            $.each(j, function(k, v) {
                        select2_ary.push({
                              id : v['id'],
                              text : v['category']
                        });    
            });
            var id = "<?php echo $id; ?>";
            if(id != '') {
                  $(".select2_single").select2({
                        placeholder: "Select a Category",
                        initSelection: function(element, callback) {
                            callback({val: '3223', text: '<?php echo $id; ?>' });
                        },
                        data : select2_ary
                   });
            }
            else {
                  $(".select2_single").select2({
                        placeholder: "Select a Category",
                        data : select2_ary
                  });
            }

    }
});


}

</script>

select2のバージョンについてはわかりませんが、最新のものではありません。このフォームを送信すると、select2 デフォルト オプションの値が取得されません。助けてください!

4

1 に答える 1

1

あなたはこれを試すことができます: $(".select2_single").select2({ placeholder: "Select a Category", data : select2_ary }).select2("val",'3223'); });

于 2015-10-27T13:32:08.173 に答える