2012-10-09 2 views
1

JSON 데이터와 여러 선택 상자를 채우십시오 (비록 데이터베이스에 더 많은 데이터는, 이것이 전부는 아닙니다있다!) 다음으로
나는 다음과 같은 데이터베이스 테이블을 가지고있다

catid value description 
0  350  350 euro 
0  500  500 euro 
0  650  650 euro 
1  0  No 
1  1  Yes 


jQuery171024539993586950004_1349776890005([{"0":"0","catid":"0","1":"350","value":"350","2":"350 euro","description":"350 euro"},{"0":"0","catid":"0","1":"500","value":"500","2":"500 euro","description":"500 euro"},{"0":"0","catid":"0","1":"650","value":"650","2":"650 euro","description":"650 euro"},{"0":"1","catid":"1","1":"0","value":"0","2":"No","description":"No"},{"0":"1","catid":"1","1":"1","value":"1","2":"Yes","description":"Yes"}]) 

이제 내가 원하는 것은의를 채우기 위해 JSON을 사용하는 것입니다 : PHP와로 json_encode() 나는이 테이블의 JSON 문자열을 만드는거야의 도움 HTML에서와 마찬가지로 :

<select id="0"> 
    <option value="350">350 euro</option> 
    <option value="500">500 euro</option> 
    <option value="650">650 euro</option> 
</select> 

<select id="1"> 
    <option value="0">No</option> 
    <option value="1">Yes</option> 
</select> 

아무도 도와 줄 수 있습니까? 나는 $ .getJSON을 사용하여 테이블을 채우는 루프를 수행하는 방법을 알고 있지만, 나는 이걸 가지고 얼마간 붙어있다. json으로하여

+0

json 파싱에 의해 파서를 만들어야하고 if 및 else 조건에 따라 addcat에서 수행 할 수 있습니다. –

답변

2

이 함수의 뜻 루프를 할 수있을 것입니다 및 메뉴를 채울 분석 구문 분석 된 JSON은 숫자 (안 STR로 catid 반환하는 경우 ... http://jsfiddle.net/a5MTE/1/ 중요성

한 노트는 catid 비교입니다 : 소스) : 여기

var populateSelects = function(data) { 
    var cat0 = $('select#0'), 
     cat1 = $('select#1'), 
     opt = $('<option />'), 
     newOpt = {}, 
     cat0opts = [], 
     cat1opts = []; 
    $.each(data, function(i, obj) { 
     //clone the option element so as to not re-create a new one 
     newOpt = opt.clone(); 
     //obj is the JavaScript object in the array, so 
     //dot-notation works nicely 
     newOpt.text(obj.description).val(obj.value); 
     if (obj.catid === "0") { 
      //push the DOM element, not the jQuery object 
      cat0opts.push(newOpt[0]); 
     } else if (obj.catid === "1") { 
      cat1opts.push(newOpt[0]); 
     } 
    }); 
    //Add the array of DOM elements to their respective menus, 
    //clearing out any existing menu items. 
    cat0.empty().append(cat0opts); 
    cat1.empty().append(cat1opts); 
}; 

행동에 그것의 바이올린입니다 당신은 if (obj.catid === 0)으로 비교를 바꾸고 싶을 것이다.

+1

Perfect! 이것을 쓰는 시간을내어 주셔서 감사합니다. –

0

하여 게시 주어진 (당신이 파서을해야한다와에 의한 경우 addcat에 다른 조건 당신이 당신의 게시 된 객체를 통해 그것을

관련 문제