contenu dynamique d'un formulaire suivant une BDD - PHP - Programmation
Marsh Posté le 28-12-2005 à 10:55:08
auto-réponse: j'ia trouv" une premiere erreur.
elle se trouvait dans le nom de mes champs.
Code :
|
Code :
|
le 2eme champ indique maintenant le contenu mais il ne s'agit pas du bon. Dans ma BD j'ai 2 catégories ('informatique' et 'internet'). le 1er m'affiche bien ces 2 catégories. dans le 2eme champ j'ai bien tous le smots correspondant mais uniquement pour la catégorie 'internet'. Lorsque je choisi la catégorie, 'informatique', il ne m'affiche pas la liste correspondante.
Marsh Posté le 28-12-2005 à 23:18:40
Bonjour,
Si j'ai bien compris la logique de ton script, tu recharges la page toutes les secondes pour mettre à jour le deuxième champ?
Si c'est bien ça, il faut éviter cette méthode : quitte à utiliser du javascript, il vaut mieux programmer un évènement onChange dans le premier select.
Et pour le problème de mauvaise catégorie, c'est parce que dans ta requête de sélection des mots, tu utilises le contenu de la variable $theme. Or à la ligne 18, on voit que comment est affectée cette variable. Et comme il n'y a pas de changement après, $theme garde la dernière valeur qu'on lui a donné, dans ce cas c'est "internet".
Marsh Posté le 29-12-2005 à 10:37:13
Xtina a raison: recharger la page toutes les secondes, c'est très sale. Il vaut mieux utiliser l'évenement OnChange.
Pour la deuxième requête, utilise plutôt "document.editMot.theme.value" que $theme.
Marsh Posté le 29-12-2005 à 16:56:49
ok merci je vais tester tout ça. le rechargement d epage était just eune solution temporaire pour voir déjà si le contenu de mon 2e champ évolue en fonction du 1er mais je ne conaissais pas le onchange donc je vais tester cette fonction.
merci
EDIt: j'ai compris le pb de $theme. en fait , il ne vaut que 'internet', puisque c'est la seule variable ou on affecte les vlaeur de theme. donc $theme='informatique', n'existe plus. Il fuat que je trouve un moyen pour affecter à $theme, toutes les valeurs sans les perdre. Mais dans ce cas, comment réaffecter une valeur à $theme en fonction du choix ?, c'est à dire, comment je peux changer la valeur de $theme, lorsque je choisi mon theme ?
Marsh Posté le 29-12-2005 à 17:27:08
don j'ai fait quelques modifications concernant la valeur de $theme.
Code :
|
ainsi $theme devient un tableau dont chaque indice prend les valeurs des différents themes. c'est à partir d elà que je peux faire intervenir le onchange je pense mais je sais pas vraiment comment faire. en fait, à chaque changement de la valeur du 1er champs, je veux la stocker dans une nouvelle variable (appelons-là $tmp). Ainsi, mon 2eme champ afficherai tous le smots correspondant à la valeur de cette variable $tmp.
Marsh Posté le 29-12-2005 à 21:08:19
Ton premier select, change-le comme ceci:
Citation : <select name="theme" onChange="javascript:this.form.submit()" > |
Ensuite pour ta deuxième requête, affecte ta variable $theme comme ceci:
Citation : if(isset($_GET["theme"])) $theme=$_GET["theme"]; |
En faisant cela, à chaque fois que tu sélectionnes un nouveau thème dans ta liste, la page se rechargera en envoyant ton formulaire (via un GET comme tu as défini) et la variable $theme de la seconde requete devrait correspondre au champs selectionné. Donc, inutile de créer un array $theme[]. Par rapport à ton premier code, il n'y a pas grand chose à changer.
Marsh Posté le 30-12-2005 à 00:38:27
ok merci beaucoup.
j'essaye ça demain et je vous tient au courant.
Marsh Posté le 28-12-2005 à 10:47:58
Bonjour,
j'ai un petit soucis avec un formulaire.
en fait, il possède 2 cahmps. LE 1er représente une catégorie et le 2eme, représente le contenu de cette catégorie.
Je voudrai, que le 2eme champ affiche le contenu correspondant à la catégorie. Pour faire simple, ce formulaire sert à supprimer un mot d'une catégorie. Je voudrai que le 2eme champ m'affiche la liste de smots contenu dans la BD suivant la valeur du 1er champ qui est la catégorie. j'ia fait un script qui m'affiche bine le contenu des catégorie dans le 1er champ mais le 2eme champ ne marche pas:
pour l'instant, le script qui va supprimer le mot n'est pas encore fait. Je cherche just epour l'instant à afficher les mots correspondant à la catégorie choisi dans le 1er champ.
MERci de votre aide
Message édité par ephagor le 28-12-2005 à 10:48:28