2011-05-12 2 views
0

이것은 아약스로 처음으로 작업 한 것이므로 나와 함께하시기 바랍니다.javascript를 사용하여 xml 파일을 반복하는 데 도움이 필요합니다.

내 프로그램에는 선택한 상태에 따라 우편 번호, 카운티 및 도시를 동적으로 가져 오는 드롭 다운 상자가 있습니다. 지금까지 카운티가 올바르게 작동하지만 우편 번호와 도시는 내 XML 시트의 첫 번째 레코드 만 표시합니다.

<states> 
    <counties> 
    <county> 
     <countyid>id#1</countyid> 
     <countyname>nassau</countyname> 
    </county> 
    </counties> 
    <zipcodes> 
    <zip>10109</zip> 
    </zipcodes> 
    <cities> 
    <city>New York</city> 
    <cities> 
</states> 

자, 군의 섹션을 통해 루프 자바 스크립트는 다음과 같습니다 :

는 XML이 같이 보입니다

target1.options[0] = new Option("Select County", "null"); 
for (var i = 0; i < xmlCounties.length; i++) { 
target1.options[target1.options.length] = new Option(xmlCounties[i].childNodes[1].firstChild.nodeValue, xmlCounties[i].childNodes[0].firstChild.nodeValue, false, (matched == xmlCounties[i].childNodes[0].firstChild.nodeValue)); 

}

잘 작동

하지만, 도시와 우편 번호가 없으므로 위의 예와 같습니다.

target2.options[0] = new Option("Select Zipcode", "null"); 
for (var i = 0; i < xmlZips.length; i++) {target2.options[target2.options.length] = new Option(xmlZips[i].childNodes[0].firstChild.nodeValue, xmlZips[i].childNodes[0].firstChild.nodeValue, false, (matched == xmlZips[i].childNodes[0].firstChild.nodeValue)); 
} 

둘 다 XML에서 데이터를 가져 오지만 첫 번째 레코드 만 가져옵니다. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 감사!

+0

어떤 자바 스크립트 라이브러리 (있는 경우)를 사용하고 계십니까? – jimbojw

+0

저는 라이브러리를 사용하지 않고 바로 자바 스크립트를 사용합니다. – rshivers

답변

0

카운티는 2 층 깊이입니다. 우편 번호와 도시는 한 단계 깊숙한 곳입니다. 그게 이유야. 사용해보기

target2.options[0] = new Option("Select Zipcode", "null"); 
for (var i = 0; i < xmlZips.length; i++) {target2.options[target2.options.length] = new Option(xmlZips[i].childNodes[0].nodeValue, xmlZips[i].childNodes[0].nodeValue, false, (matched == xmlZips[i].childNodes[0].nodeValue)); 
} 
+0

우편 번호와 도시에 대한 XML에서 첫 번째 레코드를 얻고 있기 때문에 그럴 것이라고 생각하지 않습니다. 그냥 반복하지 않고 모든 결과를 가져 오는 것일뿐입니다. 나는 당신의 제안을 시도하고 단지 null 값을 가져 왔습니다. 고마워요, 고마워요. – rshivers

관련 문제