2012-10-26 2 views
2

에서 값을 추가 선택 :JQuery와 나는 같은 JSON을 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을 설정, 선택 옵션의 텍스트로 이름을?

나는 텍스트에서이 데이터를 가지고 : 당신은 JSON 형식으로 문자열을 구문 분석하고 반복 할 수있다

$(".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

을하지만 그 다음에

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

잡히지 않은 SyntaxError : 예기치 않은 토큰 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

편집 'and "... – brabertaser19

0

질문을 올바르게 이해했다면 반환 된 json 목록의 값을 select 목록에 추가하고 싶습니까?
그렇다면,이 내가 일반적으로 그것을 할 방법입니다 : 그것은 모든 항목에 대한 당신의 선택에 추가 할 DOM을 검색하는 것보다 훨씬 더 빨리 때문에

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('')); 

내가 먼저 배열에 값을 밀어 넣습니다.