2009-11-06 5 views
0

저는 초심자이며 다른 사람들에게 저에게 글쓰기를 끊임없이 요구하지 않고 가능한 한 많은 코드를 생성하려고합니다. 그래서이 질문에 관해서는 찾고 있습니다. 바른 방향으로 힌트를 얻으려는 것. 당신은 사람들이 모두 매우 재능이 있지만, 제가 스스로 그것을 추론한다면 나는 최선을 배웁니다. 벽돌 벽을 치면 구체적인 내용을 물어볼 것입니다. :-)mysql 쿼리에 대한 동적 양식 코딩 힌트

오히려 대부분의 사용자가 한 번의 검색에 대해 관심을 가질만한 많은 옵션이 아닌 MySQL 쿼리 양식을 만들고 싶습니다. 방대한 양식을 제시하는 대신, 새로운 페이지로 이동하지 않고 선택할 수있는 후속 선택 항목의 수를 제어하는 ​​처음 몇 가지 옵션을 원합니다 (가능한 경우).

가상의 예 : 각 배우의 국적이 포함 된 영화 배우의 데이터베이스이며, 배우의 구색을 선택하면 양식 검색어가 함께 표시되는 모든 영화를 반환합니다.

ACTOR NATIONALITY 
[] Any 
[] German 
[] Russian 
[] British 
[] American 
[] Japanese 
[] Chinese 

처음에는 더 이상의 정보가 표시되지 않습니다. 사용자 확인 [] Any 다음 전체 형태는 밝혀해야 :

German Russian British American Japanese Chinese 
[]GER1 []RUS1 []BRIT1 []AMER1 []JPN1  []CHN1 
[]GER2 []RUS2 []BRIT2 []AMER2 []JPN2  []CHN2 
[]GER3 []RUS3 []BRIT3 []AMER3 []JPN3  []CHN3 
etc. 

하지만

사용자는 자신이 두 확인란 것, 독일어 & 일본 배우, 말에만 관심이 있고 다음 아래에 나타납니다 다음과 같은 경우 :

German Japanese 
[]GER1 []JPN1 
[]GER2 []JPN2 
[]GER3 []JPN3 

나는 의미가 있습니까?

필자의 코딩 지식은 PHP/MySQL에만 국한되어 있으므로 PHP 만 통합하는 솔루션이 이상적이지만 자바 스크립트가 필요한 경우 올바른 방향으로 나를 가리키면 필요한 지식을 추가하기 위해 노력할 것입니다!

감사합니다.

편집은 - 네, 모든 체크 박스 정보는 데이터베이스 같아요 자바 스크립트로 이동

+0

한 페이지에 솔루션을 원하거나 한 단계 더 나아갈 수 있습니까? – RageZ

+0

나는 사용자의 관점에서이 모든 것을 한 페이지에서 즉석에서 처리하는 것을 선호합니다. 나는 PHP와 여러 페이지를 사용하는 방법을 이미 알고 있지만, 느리고 다루기 힘든 사용자 경험을 제공한다는 것을 알고있다. – Drew

답변

1

나는 Sabeen과 동의했다. javascript는 갈 방법이지만 다른 폼 요소를 숨기지 않고 아약스 메서드를 사용합니다 ...

첫 번째 확인란 그룹 (예 : onclick, onmouseover 등)에 발생한 이벤트를 js를 통해들을 수 있으며 변경이 이루어지면 ajax 메서드를 사용하여 작은 PHP 스크립트로 양식 데이터를 보낼 수 있습니다 . 이 스크립트는 어떤 하위 메뉴를 빌드하고 호출하는 PHP 스크립트에 관련 html 조각을 반환하는지 계산합니다. Js는이 응답을 받아 DOM을 조작하여 페이지에 새로운 체크 박스 그룹을 추가합니다. 전체 페이지 새로 고침이 필요하지 않습니다.

js/ajax의 세계에 처음 나온 분이라면 jQuery을 완전히 추천 할 수 있습니다. js 프레임 워크의 다른 풍미 (내 머리 꼭대기에서 벗어남)는 Prototype, MooTools, Dojo을 포함합니다.

너무 모호하지 않기를 바랍니다. 구체적인 예가 아니라 올바른 방향으로 밀고 싶다고 말했습니까? :)

EDIT. 필자는 이러한 체크 박스를 구동하는 데이터가 db에서 왔다고 가정했음을 언급해야합니다. 그렇지 않다면 Sabeen의 방법은 구현하기가 더 쉽고 실행 오버 헤드가 훨씬 적습니다.

+0

매우 유익한 답변이다. 고마워. 내가 알아야 할 일에 관련된 중요한 용어 나 키워드가 있습니까? 올바른 용어를 알고 있으면 더 많은 정보를 쉽게 찾을 수 있습니다. – Drew

+0

ajax와 dom 조작은 큰 것입니다. 이 두 가지를 염두에두고 js 프레임 워크 중 하나를 조사하면 잘못 될 수 없습니다. – Mathew

+0

FYI - AJAX (비동기 Javascript 및 XML) 및 DOM (문서 객체 모델) – Mathew

2

에서 가져온되고있다.

아마도 하위 선택 항목을 TD 또는 DIV에 넣고 style = "display : none"으로 숨길 것입니다. 체크 박스 onclick 이벤트에서 확인란을 선택하면 해당 특정 TD가 표시되도록 설정합니다. 숨겨진 TD 또는 DIV의 확인란이 선택 취소되었는지 확인하기 위해 더 많은 자바 스크립트 코드를 입력 할 수도 있습니다. 또한 PHP 끝 부분에서 몇 가지 유효성 검사를 다시 수행하십시오. ANY가 선택되면, ur 함수가 모든 TD 또는 DIV를 표시하게하십시오.

자세한 정보 :

이렇게하면 자바 스크립트가 최소한으로 필요합니다. PHP는 모든 것을 꺼내서 페이지에 에코를 표시하고 실제로 보지 않으려면 DIV를 볼 수 없도록 숨기기 만하면됩니다. AJAX를 사용하지 않는 한 PHP를 사용하면 페이지로드가 증가합니다. 과장 일 수 있습니다.

그래서 주로 javascript의 style 속성의 display 속성을 다루게 될 것이므로 간단해야합니다.

+0

감사합니다 Sabeen! – Drew

+0

나는 그것이 기뻤다. :) –