2013-09-25 2 views
0

내 서버에서 JSON을 가져오고 웹 페이지에서 입력 상자의 값을 설정하려고한다. JSON 쌍은 입력의 ID와 값입니다. 실제 JSON은 더 이상 하나의 객체 이상의 키 값 쌍 될 것입니다

[{"city":"Rochester, Monroe County","country":"US","streetAddress":"12 Gibbs Street"}] 

같은 테스트 JSON 보인다.

이 하드 코딩 된 문을 사용할 때 입력 값이 설정됩니다.

$('#city').val(responseParsed[0].city); //this sets the city input to a value 

저는 $ .each로 확장/자동화하려고했습니다. 나는 그것을 사용하는 법을 배우려하고있다. 나는 그것의 걸림 새를 다만 얻을 수 없다. 나는 많은 시도 끝에 현재, 밀도가 높다고 느낍니다. 아약스의 성공 옵션 코드는 다음과 같습니다.

success: function (response) {  
    if (response) { 
     responseParsed = JSON.parse(response); 
     $.each(responseParsed, function(key, value){ 
      $('#key').val(responseParsed[0].key); 
      console.log($('#key').val(responseParsed[0].key) + '|eachItem'); // [object Object]|eachItem only once & input values do not change 
     }); 
    } 

답변

3

당신은 당신의 $.each 내부 responseParsed를 사용할 필요가 없습니다. 이것이 keyvalue 매개 변수의 의미입니다.

value (또는 this)은 배열의 현재 요소입니다. 내가 생각

$.each(responseParsed, function(index, data){ 
    $.each(data, function(key, value){ 
     $('#'+key).val(value); 
     console.log(key, value); 
    }); 
}); 
+0

로켓 위험물, 감사, 그것은 잘 작동

$.each(responseParsed, function(key, value){ $('#city').val(value.city); }); 

는 다른 $.each이 필요로하는 것, 객체에서 각 키를 얻으려면. 기능 (색인, 데이터)과 기능 (데이터, 기능 (키, 값))에 대해 설명해 주시겠습니까? 키와 값은 이해하지만 데이터는 두 위치 모두에서 동일한 콘텐츠입니까? 그렇다면 무엇입니까? 코드의 나머지는 되겠지만, "이중 데이터"부분을 얻지는 않습니다. 다시 고마워요. –

+0

@Mike_Laird :'responseParsed'를 반복 할 때'index'는 배열의 키이고'data '배열의 값입니다. 그 값은 객체입니다. 우리는 그 객체를 반복 할 필요가 있습니다. 그래서 우리는'responseParsed'에서했던 것처럼'data .'에'$ .each'를 호출합니다. –

0

당신이 원하는 :

success: function (response) {  
    if (response) { 
     responseParsed = JSON.parse(response); 
     $.each(responseParsed[0], function(key, value){ 
      $('#' + key).val(value); 
     }); 
    } 
+0

죄송합니다. 작동하지 않습니다. 그리고 모든 것이 중첩되어있는 함수를 깨뜨린다. –

+0

죄송합니다. 하나의 루프 만 만들었습니다. 틀림. 로켓 코드가 정확합니다. –

관련 문제