2017-08-04 42 views
-1

我需要追加到SELECT2多個,部分結果從AJAX取出。我嘗試使用此代碼來實現這一結果:追加AJAX結果到選擇2倍數

<select name='prodotti' rows='5' multiple id='prodotti' class='select2'></select> 

這裏是JS

$('#close-modal').on('click', function (e) { 
    var id = $('#id').val(); 
    $.ajax({ 
     type: 'GET', 
     url: '/items-fattura?id=' + id, 
     success: function (response) { 
      $("#prodotti").val(response); 
     } 
    }); 
}); 

阿賈克斯返回此結果:

[{"id":2,"nome":"Certificato SSL POSITIVE"}] 

有人可以幫我解決?

+0

解決什麼問題?你期待什麼結果? – Difster

+1

您正在使用select2插件或簡單的選擇HTML元素? – Selvakumar

+0

要附加選項或設定值 – Satpal

回答

0

你可以試試這個。

$.ajax({ 
    type: 'GET', 
    url: '/items-fattura?id=' + id, 
    success: function (response) { 

     var $el = $("#prodotti"); 

     $el.empty(); // remove old options 

     $el.append($("<option></option>") 
       .attr("value", 0) 
       .text('Select')); 

     for (i = 0; i < response.length; i++) { 

      $el.append($("<option></option>") 
        .attr("value", response[i]['id']) 
        .text(response[i]['name'])); 
     } 

    } 
}); 
0

使用$.each通過您從AJAX調用收到您的JSON數組進行迭代。

注: - 的success拼寫,你寫sucess

success: function(data){ 
     data = JSON.parse(data); 
     var toAppend = ''; 
     $('#prodotti').empty(); 
     $.each(data, function(i,o){ 
      toAppend += '<option value="'+ o.nome +'">'+o.id+'</option>'; 
     }); 
     $('#prodotti').append(toAppend); 
    } 
+0

感謝這個工作,以及,但我不充分的要求明確,我需要的是獲取價值選擇的選項來。我如何將它標記爲已選中? – rubenSousa

0

如果您在收到由逗號分隔的多個值,你可以使用這個select2招設定值:

var makeArray = commanSeparatedValues.split(','); 
$('#SELECT_ID').val(makeArray); 

這是一個漂亮的小酷技巧與select2工作時,你應該使用。避免循環和$.each。希望這可以幫助!