Effectuer une recherche avec des SELECT Option à plusieurs niveaux

Effectuer une recherche avec des SELECT Option à plusieurs niveaux - PHP - Programmation

Marsh Posté le 07-12-2006 à 09:56:59    

Bonjour :)
 
Je pense savoir faire un moteur de recherche sur bdd.
Mais ce que je veux faire c'est une fonction de recherche avec un formulaire fait de champs SELECT OPTION.
 
Jusque là, rien d'extraodinaire me direz-vous! Ce qui complique la chose c'est qu'il y aura plusieurs SELECTS dont certains dépendront de quelques autres. je m'explique :
 
Mettons 3 SELECT : cinemas, themes, films
Chaque SELECT a differentes valeurs en OPTION, par ex
Cinemas a comme options : ugc, gaumont, mk2, etc
Themes a comme options : policier, horreur, SF, etc
Films a comme options : arme fatale, star wars, star trek, le pianiste, etc
 
Mais tous les films ne sont pas diffusés dans toutes les salles, alors du SELECT n°1, dépendent les options des deux autres SELECT....
euh j'esprèe que tout le monde suit? :)
 
bref, rien en vaut un exemple, voir le moteur de recherche de ce site : http://support.euro.dell.com/suppo [...] l=fr&s=dhs
 
Voilà à peut près ce que j'aimerias faire avec 4 SELECT. Mais je ne sais pas trop comment m'y prendre. Un coup de main de base ou un tuto est le bienvenu.
merci à vous
;)


Message édité par miltonis le 07-12-2006 à 10:11:35
Reply

Marsh Posté le 07-12-2006 à 09:56:59   

Reply

Marsh Posté le 07-12-2006 à 15:54:51    

Tu as deux possibilités :  
 
1. Tu proposes pour commencer ton premier SELECT seulement, auquel tu mets un événement "onChange" qui soumets la page vers elle-même ($_SERVER['PHP_SELF']). Tu testes , avant d'afficher ton deuxième select, si le premier est déjà sélectionné (isset($_POST['valuedu1erselect'])), puis tu continues comme ça jusqu'au 4eme. Ce n'est pas très heureux en terme de performance car tu soumets N fois ta page, N étant ton nombre de select.
 
2. Tu utilises Javascript. Si les options dont dépendent chacun des select ne sont pas innombrables, tu peux à l'avance aller toute la chercher dans la base de données, et peupler des array avec les valeurs. Ensuite, toujours avec un onChange, tu peuples les select inférieurs en fonction du choix de ceux qui les précèdent.
A noter que cette option est absolument préférable si les mots de recherche ("cinémas, themes etc" , "ugc, gaumont etc" ne sont pas issus d'une bdd mais directement codés en dur (ce qui est un peu malheureux mais ça arrive ;) )
 

Reply

Marsh Posté le 07-12-2006 à 19:45:01    

La solution 2 est faisable avec une base de données je l'ai fait =) avec un triple choix en plus

Reply

Marsh Posté le 08-12-2006 à 10:48:50    

Gagman a écrit :

La solution 2 est faisable avec une base de données je l'ai fait =) avec un triple choix en plus


 
Faut pas avoir trop de données par contre.
 
Sinon, dernière solution : AJAX...

Reply

Marsh Posté le 08-12-2006 à 15:16:19    

merci de vos réponses, je pense que je vais me baser sur la deuxieme solution
a+++ ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed