2009-12-29 3 views
2

저는 웹 개발에 초보자이며 기본적으로 사용자에게 한 페이지에 풀다운 목록을 표시하는 웹 응용 프로그램을 개발하는 작업을하고 있습니다. 선택하면 다른 모든 목록의 선택이 제한됩니다. 사용자는 목록 중 하나 (선택 설정 순서가 지정되지 않음)로 시작할 수 있어야하며 사용자가 각 목록에서 항목을 선택했거나 이전 매개 변수로 모든 매개 변수를 잠그면 사용자가 GO 단추를 누르고 몇 가지 계산을 눌러야합니다 데이터베이스 선택을 제시하면서 일어날 것입니다. 기본적으로 다중 매개 변수 제품 선택기 응용 프로그램입니다.MySQL, PHP/JavaScript/Ajax/jQuery를 사용하는 연결된 풀다운 목록

목록 간의 관계는 단순하지 않으며 계산 된 필드 등이 필요할 수 있으며 하나의 목록은 여러 다른 항목의 내용에 영향을 줄 수 있습니다. 뒤에있는 데이터베이스는 아마도 아마 30 개의 필드와 500-5000 개의 행을 가진 하나의 큰 테이블 인 MYSQL이 될 것입니다. 나는 당신이 강한 이유가 없다면 PHP, JavaScript 및 아마도 AJAX를 사용할 것입니다.

나는 몇 가지 조사를 수행하고이 작업을 수행하는 세 가지 방법 발견 :

  1. 브라우저에 모든 데이터를 전송하고 자바 스크립트로 필터링 등 클라이언트 측을 처리합니다.

  2. 각 선택 후 매개 변수를 서버로 다시 보내고 각 선택 후에 전체 양식을 다시로드하십시오. 아마 littebit 자바 스크립트와 PHP에서 대부분의 코드.

  3. AJAX를 사용하면 전체 양식을 다시로드하지 않고도 모든 목록 콘텐츠를 동적으로 변경할 수 있습니다.

    A. 느린 초기 :이 너무 새로운 오전부터

내가 갈 길 힘든 시간 텔링을 가지고, 무슨 일이

좀 conserns이 ... 등이 있습니다 함정 로드. # 1 최악?

나. 느린 동적 응답. 최악의 # 2? C. 복잡한 프로그래밍. # 3 최악?

D. 다른 브라우저 및 플랫폼에 대한 호환성 문제. 어떤 방법으로 문제를 만들 가능성이 가장 높은지 모르겠다 ... 어떤 Framework를 사용하면 더 좋은가?

E. JavaScript를 사용하지 않는 사람들을 위해 적어도 부분적으로 작업하려고 할 수 있습니까? (새 페이지에서 각 목록을 선택하고 매번 GO 버튼을 누르는 것과 같이)? (내 사용자에게 Javascript가 있어야하므로 커다란 문제는 없다고 말할 수 있다고 생각합니다.) 아마 # 2가 가장 좋습니다.

F. "자유 선택 순서"의 사양은 데이터베이스의 대부분을 처음에 다운로드해야한다는 것을 의미한다고 생각합니다. 따라서이 옵션을 피하려고 노력해야합니다. 방법 # 1, 또는? 즉 # 1 큰 마이너스을 제공하므로

G. 그것은 ..., 사용자 지정 SQL 코드를 구축하여 향후 확장을 할 수 있도록 SQL의 selction/필터링 가능한 한 많은 일을하는 가장 좋은 것입니다

H . 다른 함정 등?

세 가지 방법 모두에 대해 자습서를 찾았지만, 이와 같은 좋은 자료를 지적 해 주시면 고맙겠습니다. 특히 스마트하지 않거나 우수한/호환되지 않는 예제에 기초하지 않습니다.

1 http://www.bobbyvandersluis.com/articles/unobtrusivedynamicselect.php http://javascript.about.com/library/bl3drop.htm http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_20523133.html

2 http://www.plus2net.com/php_tutorial/php_drop_down_list.php http://www.plus2net.com/php_tutorial/php_drop_down_list3.php

3 http://techinitiatives.blogspot.com/2007/01/dynamic-dropdown-list-using-ajax_29.html http://www.webmonkey.com/tutorial/Build_an_Ajax_Dropdown_Menu http://www.noboxmedia.com/massive-ajax-countryarea-drop-down-list/ http://freeajaxscripts.net/tutorials/Tutorials/ajax/view/Create_AJAX_Dynamic_Drop_Down_List_using_PHP_-_xajax.html

01,235,

3 + jQuery를이 : 이제 http://remysharp.com/2007/01/20/auto-populating-select-boxes-using-jquery-ajax/

질문에 : 사람이 나를 이렇게 내가 하나를 선택할 수 있습니다 오른쪽에 시작 위의 방법 1-3의 평가와 함께, 조금 도움이 모든 방법을 경험 할 수 선로? 또한 jQuery + jSON과 같은 프레임 워크를 배우고/unsing하여 도움을받을 수 있습니까?

RGDS 오후

나는 확실히 jQuery를 사용하여 코드에 훨씬 더 빨리 할 것 자사의 주요 브라우저 모두에서 테스트가 간단한 전화를 AJAX를 사용하는 것이 좋습니다 거라고하고 브라우저 호환성을하지 않았을

답변

1

모든 데이터를 브라우저로 보내고 필터링 등 클라이언트 측 을 자바 스크립트로 처리하십시오.

테이블에 잠재적으로 30 열과 500-5000 행이 있다고 언급 했습니까? 이 경우 페이지를로드 할 때 많은 양의 데이터를 보내는 것이 좋지 않습니다. 1. 페이지로드가 느려지고 브라우저가 멈추게 만듭니다 (IE라고 생각하는 경우).

각 선택 후에 매개 변수를 서버에 다시 보내고 각 선택 후에 전체 양식을 다시로드하십시오. 아마 PHP에서 littebit Javascript와 대부분의 코드.

이것이 세 번째 방법과 어떻게 다른지 잘 모르겠지만 페이지를 새로 고침해야한다는 뜻입니까? 이 경우는 다시로드하지 않고 동적으로 모든 목록의 내용 을 변경 ..

를 사용하여 AJAX가 선택 드롭 다운이 변경 될 때마다 새로 고침 페이지를 기다릴 필요하면 좋은 사용자 경험이 될 것 같지 않다 전체 양식은 입니다.

단순한 양식을 작성하는 것처럼 사용자의 관점에서 볼 때 가장 좋은 방법입니다. 마지막으로 구현하기는 다소 힘들지 만 각각의 솔루션에서 동일한 계산을 수행해야 할 가능성이 있으므로 AJAX가 데이터를 검색하기 위해 호출 할 수있는 별도의 페이지로 이동할 수도 있습니다. 다른 사람들이 언급했듯이, 모든 JavaScript/AJAX에 jQuery를 사용하면 훨씬 쉽게 작업 할 수 있습니다.)

+0

포괄적 인 답변을 해주신 James에게 감사드립니다! AJAX + Framework는 대부분의 사람들이 제안하는 것입니다. 내가 노력을 기울여야 만 할 것 같아 .... 다른 부정적인 점은 기본적으로 Javascript를 사용하지 않는 사람들을위한 폴백 솔루션을 사용하지 않는다는 것입니다. 프레임 워크의 경우, jQuery는이 응용 프로그램의 가장 좋은 선택입니다. YUI, MooTools 등은 더 많은 기능을 가지고 있지만 사용/배울 것이 조금 더 어려워 보입니다. –

2

정상적인 JavaScript의 문제.

+0

감사합니다. Scott! jQuery를 사용하여 더 좋은 튜토리얼을 본 적이 있습니까? –

0

개인적인 추천은 AJAX와 함께하는 것입니다.

원시 SQL은 실제로 사용하는 백엔드의 질문입니다.

다른 선택 사이의 관계를 설정할 수 있어야합니다. 목록의 인구는 백엔드와 통신 할 수 있어야합니다.

실제 문제는 선택 항목 간의 관계를 구현하는 방법입니다. 여기에 좋은 답변이 없습니다. 백엔드와 관리 요구에 크게 의존합니다. PHP로 하드 코딩하거나 XML 또는 관리 인터페이스를 통해 구성하고 데이터베이스 솔루션에 유지할 수 있습니다.

완벽하게 사용자 정의 할 수있는 쉬운 작업은 아닙니다.

AJAX를 사용하는 것이 가장 좋은 이유는 기본적으로 선택 사항의 변경 사항을 필터링해야하기 때문입니다. 이는 사용하지 않은 많은 정보를 다운로드하거나 페이지를 새로 고치는 것을 의미합니다. 아약스로 가면 사용자는 매끄러운 경험을 할 수 있습니다.

+0

AJAX의 사용을 더욱 확인한 Peter에게 감사드립니다! 그래도 내가 당신의 대답을 완전히 이해하고 있는지 확신 할 수 없습니다. –

0

jquery는 사용하기 쉬운 방법입니다. xajax라는 특정 클래스를 사용해 볼 수도 있습니다 ..! 이것들은 물건을 더 쉽게 만들 것입니다.