11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour, je voudrais realiser un formulaire dynamique d'inscription, je voudrais utiliser pour cela XMLHttpRequest pour mettre a jour les options d' une liste de select. Imaginons qu'un premier select "pays" modifira les options du second select "region" et la selection d'une option du select "region" modifira les option du select "departement".
(j'ai deja fait quelques tests)

pour generer les options des select je voudrais utiliser un fichier php qui interroge la base de donnée.

je recupere donc dans responseText ce qu'affichera mon fichier php.

Est ce qui'il est preferable de generer entierement la page formulaire ou est ce qu'il vaut mieux generer uniquement les options des selects?
dans le second cas la difficulté sera differencier les options de chaques select et donc d'effectuer un traitement.
Peut t'on faire cela facilement en mettant les données en xml et en utilisants responseXML a la place de responseText.



J'aimerais avoir votre avis sur le sujet avant de me lancer (je voudrais coder moi meme tout cela sans utiliser de librairie speciales).J'espere ne pas avoir ete incomprehensible. Smiley lol
Modifié par zacc (16 Oct 2006 - 00:09)
Administrateur
on peut imaginer de modifier le contenu des options de chaque select, en parsant la réponse, qu'elle soit en xml ou en format texte. les options d'un select sont en effet un tableau accessible en javascript.

je l'ai déjà fait, c'est assez simple. l'astuce est de compter le nombre de résultats retournés et de modifier la longueur du select en conséquence, via javascript.
(par contre je n'ai plus le code sous la main)
Effectivement la seule difficulte c'est l'analyse du resultat je vais tester comme ça.

si quelqu'un a d'autres idées voir un exemple d'un autre façon de faire, je la refuserais pas
Pour le format du résultat, tu peux faire très simple : une simple énumération avec la virgule comme séparateur... ou tout autre caractère qui te conviendra.
En php, il est facile de convertir un tableau dans ce format grâce à la fonction implode, et en javascript il est facile de la retransformer en tableau avec la fonction split.