11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

je veux créer un tableau composé de listes déroulantes.

Quand je change la valeur de la première liste déroulante, le contenu de la deuxième liste correspondante doit changer (Selon la requête SQL à exécuter).

Exemple :
Pour la première ligne du tableau,
Si je choisi comme pays la "France" je dois avoir que les villes de france dans la deuxième colonnes.

http://img716.imageshack.us/img716/2782/tablistes.gif

Est se que je peux le faire qu'avec PHP ?
Est se que vous connaissez un exemple ou bien un tutoriel traitant le même sujet ?

Merci d'avance.
J'attends avec impatience une réponse Smiley sweatdrop
Modifié par riadh.rezig (09 Aug 2010 - 09:33)
Hello riadh.rezig et bienvenue, Smiley smile

(sujet déplacé)

euh... de quel tutoriel veux-tu parler ?

Quoi qu'il en soit c'est très certainement parce que seule le premier SELECT est correctement connecté à l'appel JavaScript (et donc Ajax) et pas les autres. Il faudrait vérifier les id utilisés (éléments HTML et code JavaScript).
Ah : tu as modifié ton post pendant que je te répondais. Smiley cligne

C'est impossible de faire cela uniquement en PHP puisqu'il s'agit d'un langage serveur et qu'il est donc exécuté avant l'affichage de la page.
Hello,

Il te faudra forcément utiliser du Javascript pour cela. Ensuite, tu a plusieurs façons de faire :

1/ Tu génères tous les <select> des villes directement dans le HTML en PHP lors de la requete, puis tu affiche la liste correspondante au pays selectionné.
Ca va te faire un code HTML peuplé d'éléments inutiles par contre...

2/ Tu n'affiches pas de listes de villes pas défaut dans ton markup, mais tu fais une requete AJAX a chaque changement de valeur pour afficher le select correspondant.
Ca va pas forcément etre le plus rapide de faire une requete sur le serveur pour ça à chaque changement...

3/ Tu ecrit un immense select dans ton markup, separé en groupes, chacun correspondant à un pays et qui contient la liste des villes. Et ensuite en Javascript tu le découpe en deux selects (pays / ville) dont l'affichage de l'un est soumis à la selection de l'autre.
Ca me semble le mieux (fonctionnera aussi sans JS), mais est plus complexe à mettre en place.


Je n'ai pas détaillé et n'ai pas de tutoriel pour faire ça sous la main, mais si tu a déjà un certain niveau en javascript, ça devrait rouler
Bonjour,

merci beaucoup pour vos réponses.

Je viens de trouver une solution pas avec les listes liées mais j'ai changé de tactic ...