2012-10-26 29 views
2

增加值,我有這樣的json:jQuery的選擇JSON

[ 
{ 
    "MOD_AXL": 0, 
    "MOD_CDS_ID": 110000168, 
    "MOD_CV": 0, 
    "MOD_CV_CTM": null, 
    "MOD_ID": 168, 
    "MOD_MFA_ID": 514, 
    "MOD_PC": 1, 
    "MOD_PCON_END": 199007, 
    "MOD_PCON_START": 196303, 
    "MOD_PC_CTM": null, 
    "Name": "2 CV"}, 
{ 
    "MOD_AXL": 0, 
    "MOD_CDS_ID": 110004500, 
    "MOD_CV": 0, 
    "MOD_CV_CTM": null, 
    "MOD_ID": 4500, 
    "MOD_MFA_ID": 514, 
    "MOD_PC": 1, 
    "MOD_PCON_END": 198810, 
    "MOD_PCON_START": 197808, 
    "MOD_PC_CTM": null, 
    "Name": "ACADIANE"}, 
{ 
    "MOD_AXL": 0, 
    "MOD_CDS_ID": 110001660, 
    "MOD_CV": 0, 
    "MOD_CV_CTM": null, 
    "MOD_ID": 1660, 
    "MOD_MFA_ID": 514, 
    "MOD_PC": 1, 
    "MOD_PCON_END": 197712, 
    "MOD_PCON_START": 196301, 
    "MOD_PC_CTM": null, 
    "Name": "AMI"} 
// etc..etc.. 
]​ 

但如何將其設置爲選擇值MOD_ID,並作爲選擇選項的文本:名稱?

我在文本這樣的數據:

$(".man-select").change(function(){ 
    var mfa_id = $(".man-select").val(); 
    console.log(mfa_id); 
    $.ajax({ 
     url: "/get_models_for_mfa/mfa_id="+mfa_id+".json", 
     type: "GET", 
     data: {}, 
     success: function(text) //here is object 
     { 
     console.log("getted"); 
     $('.mod-select') 
     .append($("<option></option>") 
     .attr("value",text) 
     .text(text)); 
     }, 
     error: function(){ 
     //alert('Ошибка javascript'); 
     }, 
     dataType : "html" 
    });  
    }); 

回答

5

您可以解析你的字符串,JSON格式,然後遍歷雖然它:

success: function(text){ 
    var your_object = JSON.parse(text); 
    $.each(your_object , function(k, item) { 
     $('.mod-select') 
      .append($("<option></option>") 
      .attr("value", item.MOD_ID) 
      .text(item.Name)); 
    }); 
} 
+0

未捕獲的語法錯誤:意外的令牌o – brabertaser19

+0

剛剛得到我的最新,它工作;)...每個有2個參數 – felipeclopes

+0

也必須更改dataType:「json」? – brabertaser19

3

變化dataType : "html"dataType : "json"

接下來在成功函數來完成以下更改

success: function(text){ 
    console.log("getted"); 
    vat html = '' ; 
    $.each(text , function(i){ 
     html += '<option value="' + text[i]["MOD_ID"] + '">' 
          + text[i]["name"] + '</option>' ; 
    } 
    $('.mod-select').empty().append(html); 
} 
+0

編輯'和「... – brabertaser19

0

如果我理解你的問題正確,你想從返回的JSON列表中添加值到select列表?
如果是這樣,這是怎麼了,我通常做:

var myData = json.d; 
var h = []; 

$.each(myData, function(i, val) { 
    h.push('<option value="' + val.MOD_ID+ '">' + val.Name + '</option>'); 
}); 
$('#yourSelect').empty().append(h.join('')); 

我第一次推值的數組,因爲它比搜索DOM追加到你選擇的每一個項目要快得多。