Menu dynamique [Résolu/Fermé]

Signaler
-
Messages postés
298
Date d'inscription
lundi 20 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009
-
Bonjour,
voila, je suis en train de faire un site sur la réservation de matériel, et j'en suis au point ou il me faut des menus déroulant.
je sais déjà les faire avec la balise <select>, mais la je dois les rendre dynamique.

l'objectif étant d'arrivé a la chose suivante :
je rentre la date
>>puis il s'ouvre deux menus, qui correspondront a la date de début et de fin (donc avec comme choix dans le menu, de 8h a 20h)

>> une fois les trois champs renseigné, un autre menu devient visible pour me permettra de choisir un type de matériel ( portable, vidéo projecteur, etc ), une fois ce menu la renseigné, un autre juste en dessous devient visible avec les même caractéristiques, et un troisième identique.

j'aimerais savoir sous quel langage me sera t-il possible de le faire, Php ou javascript ?

et selon le langage, comment dois-je m'y prendre?

en vous remerciant d'avoir pris la peine de lire et de me répondre!

4 réponses

Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
448
Tu devrai afficher le résultat de l'envoi du premier formulaire dans l'url puis placer une condition qui affichera le menu suivant en fonction du résultat précédent.
Exemple:
Ton premier menu est la date.
Tu la place dans l'url:
[...]?date=2009-06-08

Ensuite la condition:
if(isset($_GET['date'])){echo'<select>[...]</select>';}

A toi maintenant d'adapter ça. C'est juste pour te guider que je met ça mais le code est très loin d'être complet.
Messages postés
298
Date d'inscription
lundi 20 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009
34
Tu peux en effet suivre les conseils d'arthezius. Mais cela nécessitera un rafraichissement de la page à chaque modification (Un rafraichissement pour afficher les premiers select, puis un second pour le choix du type de matériel et ainsi de suite).
De plus, il te faudra faire valider ton formulaire à chaque fois pour prendre en compte le choix de l'utilisateur.

C'est une méthode lourde mais au moins elle aura le mérite de marcher tout le temps.
Si tu la choisis je te conseille par contre de passez par la méthode POST et non GET comme décris par arthezius. Cela évitera de surcharger ton url et d'afficher des informations pas forcément nécessaire à l'utilisateur.

Une autre solution serait d'utiliser du javascript.
Tu prends là le risque que l'utilisateur n'ai pas activé JavaScript (rare de nos jours ça) et donc que cela ne marche pas. Mais là, au moins tu n'auras pas besoin de rafraichir sans cesse la page.
A chaque modification d'un SELECT (via l'évènement onChange à ajouter sur les balises SELECT) tu pourras modifier le style display des SELECT suivant de "none" à "block" par exemple, ce qui aura pour effet de les faire apparaitres.

Et si tu souhaites en plus avoir des SELECT qui se construisent via une base de donnée sans pour autant retirer la main à l'utilisateur, tu pourras intégrer de l'AJAX (association de JavaScript et PHP).

M'enfin là ça devient complexe et j'dois t'embrouiller le cerveau.

Alors pour récapituler :
- Tu peux faire ça simplement en PHP via un rafraichissement à chaque besoin de modification de l'affichage du formulaire (utilise plutôt la méthode POST que GET pour le formulaire)
- Ou en utilisant du JavaScript (modification du DOM côté client, donc sans rafraichissement).
je vous remercie pour vos réponses rapide, et en effet je pensais déjà en postant que j'utiliserais le javascript, j'avais fait pas mal de recherche au préalable avant de venir demander de l'aide, mais je n'ai pas trouvé la réponse que je cherchais.

il ne me reste plus qu'a parcourir les cours de javascript pour cherché les informations qu'y m'intéresse :).

j'ai déjà entendu/vu de l'ajax, et non tu ne m'embrouille pas, mais dans la mesure ou je ne sais rien de cette union de langage, tu me perdras si tu continue a en parlé ^^.

en tout cas merci pour vos réponses!
Messages postés
298
Date d'inscription
lundi 20 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009
34
De rien, ça fait plaisir de pouvoir aider ;)

Et surtout bonne chance pour la suite de ton travail