2013-07-10 1 views
0

은 내가 국가에게 선택 상자, 동적 국가에 따라 변경된 지방 요소를 가지고있다. 예를 들어 미국을 선택하면 주는 미국 주를 포함하는 선택 상자가됩니다. 다른 국가를 선택하면 지방은 텍스트 필드 일뿐입니다. Javascript로해야한다는 것을 알고 있지만이 경우에 가장 좋은 방법을 알고 싶습니다. 어떠한 제안?양식 변화에 가장 좋은 방법

+1

Javascript를 사용하여 지역 또는 텍스트 입력 필드가있는 선택 상자를 표시 할 수 있습니다. 선택한 국가에 따라 다른 지방 목록을 갖고 싶다면 AJAX를 사용하고 국가가 바뀔 때마다 적절한 지방 목록을로드 할 수 있습니다. –

답변

1

이 질문은 거의 매일 발생 stackoverflow ... 하위 선택의 나라 -> 상태를 처리하는 방법 ...? 여러 관련 선택 필드 유형에 대한

모범 사례는 전용이 부속 선택을 추가 버튼을 제출와 데이터베이스에서 첫 번째 선택 박스를로드 입니다 - "쇼 상태"또는 귀하의 경우와 유사 할 수있다. 형태 처음을 렌더링 할 때

는 모든 가능한 서브 선택를 가져 오지 않는다. 예를 들어 국가 -> 주 -> 도시와 같은 것을 표시하면 쉽게 무거운 데이터베이스 쿼리이 될 수 있습니다. 그러나 모든 국가의 국가 -> 국가는 이미 너무 많습니다.

"show states"버튼을 사용하여 양식을 제출 한 경우 "도시 표시"버튼이나 다른 하위 선택 물이로드되지 않을 경우 양식에 관련 하위 선택 물을 추가하십시오. 마지막 " 저장 "버튼을 클릭하십시오.

JavaScript가없는 사용자는 처음에는 불필요한 subselect 쿼리를 사용하지 않고 double-select를 사용할 수 있습니다. JS로 두 번째 선택을 숨기는 것만은 이 아니라 모범 사례입니다. 자바 스크립트를 통해

점진적 개선는 AJAX것 -Loading 즉 핸들 바처럼 엔진 JS의 템플릿을 이용하여 상기 데이터를 버튼을 "표시 상태"제거 렌더링 국가의 국가의 JSON 목록 또는 콧수염과 "저장"버튼을 추가합니다.

이렇게하면 클라이언트 브라우저에 너무 많은 반복 데이터를 보낼 필요가 없습니다 (옵션, 옵션, 옵션 ...).

마지막 단계는 로딩 시간을 단축하기 위해 클라이언트와 서버 측 캐싱을 수행하는 것입니다. 클라이언트 사전 설정의 일종 인 백그라운드 사전로드 (예 : 클라이언트의 기본 언어 선택)를 포함 할 수도 있습니다.

+0

은 더 명확해질 수 없습니다. 고마워요! –