OVH Cloud OVH Cloud

contenu d'une liste deroulante.

9 réponses
Avatar
Sebastien LABALETTE
Bonjour.

Je développe en PHP un petit site avec une liaison à une base de données.

J'ai une question.
Imaginez d'abord la base de données pour exemple

TABLE1(Num, Nom)
TABLE2(Num, Nom, Num_table1#)

Num_table1 clé étrangère sur la table TABLE1

Je souhaiterais ensuite construire un formulaire avec des listes
déroulantes pour récupérer les données.

La première liste récupère en étiquette TABLE1.Nom et en valeur
correspondante TABLE1.Num
Jusque là pas de problèmes !!
mais ensuite,
Je souhaiterais que la deuxime liste déroulante affiche TABLE2.Nom en
fonction de ce que l'on a cliqué sur la première liste déroulante et quelle
récupère TABLE2.Num

Exemple.

enregistrements de la table TABLE1 enregistrments de la table
TABLE 2.

1 - Nom1 1 -
Nom1 - 1
2 - Nom2 2 -
Nom2 - 3
3 - Nom3 3 -
Nom3 - 1
etc 4 -
Nom4 - 2
5 -
Nom5 - 1

etc

si par exemple on séléectionne Nom1 dans la première liste déroulante, je
souhaiterais que la deuxième affiche les corespondances, c-à-d
Nom1, Nom3, Nom5

Merci pour votre aide.

Je développe en sur (code) ou sur Dreamweaver.

9 réponses

Avatar
Marc

Merci pour votre aide.

Je développe en sur (code) ou sur Dreamweaver.


visiblement il s'agit d'une double liste chainée.
j'avais transmis une solution a base de classes
il y a au moins un an.

recherche dans les archves des news.
et je crois que les classes sont la :

http://php.classes.free.fr/

Avatar
Jean-Marc Molina
Sebastien LABALETTE a écrit/wrote :
Je souhaiterais ensuite construire un formulaire avec des listes
déroulantes pour récupérer les données.


Déjà comment procédes-tu pour afficher la première liste ? Cas très simple,
un premier formulaire affiche la première liste, le résultat est soumis à un
second script qui se charger d'afficher la seconde liste en fonction du
choix effectué sur le premier formulaire. On peut aussi le faire
intéractivement en utilisant JavaScript mais c'est plus compliqué, déjà 2
scripts PHP ça sera pas mal.

Tu peux t'y essayer avec une liste de continents et de pays par exemple.
Quand tu as un problème essaie de choisir des exemples plus explicites que
Table1 et Table2, ça aide beaucoup.

--
Jean-Marc.

Avatar
cmeresse
"Sebastien LABALETTE" wrote in message news:<cicokj$fjn$...
[snip]
si par exemple on séléectionne Nom1 dans la première liste déroulante, je
souhaiterais que la deuxième affiche les corespondances, c-à-d
Nom1, Nom3, Nom5
[snip]


Hello,

Deux solutions:
- Sans javascript, tu es obligé de soumettre ton formulaire et de
recharger
ta page pour réafficher tes "selects".
- Avec javascript: voir la reponse que j'avais developpée il y a
quelques mois ici http://groups.google.fr/groups?q=%22Christophe+M%C3%A9resse%22&hl=fr&lr=&ie=UTF-8&selm?7e9dee%241%40news.swissonline.ch&rnum=8

A+
Christophe

Avatar
Ronnie Garcia
Sebastien LABALETTE wrote:
J'ai une question.
Imaginez d'abord la base de données pour exemple

TABLE1(Num, Nom)
TABLE2(Num, Nom, Num_table1#)

Num_table1 clé étrangère sur la table TABLE1

Je souhaiterais ensuite construire un formulaire avec des listes
déroulantes pour récupérer les données.

La première liste récupère en étiquette TABLE1.Nom et en valeur
correspondante TABLE1.Num
Jusque là pas de problèmes !!
mais ensuite,
Je souhaiterais que la deuxime liste déroulante affiche TABLE2.Nom en
fonction de ce que l'on a cliqué sur la première liste déroulante et quelle
récupère TABLE2.Num


QuickForm sait gerer ce genre de liste à deux choix. Le contenu de la
2eme liste etant determiné par la 1ere.

QuickForm : http://pear.php.net/package/HTML_QuickForm/docs

L'element s'appelle "hierselect"

--
Ronnie Garcia <ronnie at mk2 dot net>

Avatar
AAA
désolé ..
le lien donne une liste de fichiers dont aucun ne s'ouvre correctement
si tu as une autre solution, je suis intéressé par ce bout de code
merci
IB

"Marc" a écrit dans le message de
news:414a7185$0$20471$

Merci pour votre aide.

Je développe en sur (code) ou sur Dreamweaver.


visiblement il s'agit d'une double liste chainée.
j'avais transmis une solution a base de classes
il y a au moins un an.

recherche dans les archves des news.
et je crois que les classes sont la :

http://php.classes.free.fr/



Avatar
Jean-Marc Molina
Sebastien LABALETTE a écrit/wrote :
Je développe en sur (code) ou sur Dreamweaver.


Je te déconseille d'utiliser Dreamweaver pour tes débuts, tu ne vas rien
apprendre et je doute qu'un outil aussi puissant soit adapté pour le
débutant, surtout concernant le prix de la licence, hein :).

Je te conseille plutôt HTML-Kit ou jEdit, surtout ce dernier c'est mon coup
de cœur de l'année :).

--
Jean-Marc.

Avatar
Paul Delannoy
Sebastien LABALETTE a écrit:
Bonjour.

.....


mais ensuite,
Je souhaiterais que la deuxime liste déroulante affiche TABLE2.Nom en
fonction de ce que l'on a cliqué sur la première liste déroulante et quelle
récupère TABLE2.Num

La réponse est dans la question : ça se passe dans le navigateur, en

fonction du choix de l'usager : c'est donc vers Javascript qu'il faut se
tourner...

Avatar
Marc
désolé ..
le lien donne une liste de fichiers dont aucun ne s'ouvre correctement
si tu as une autre solution, je suis intéressé par ce bout de code
merci
y'a un bug chez free qui sera corrigé.

je vais te transmettre en pv .

Avatar
AAA
"Marc" a écrit dans le message de
news:414a7185$0$20471$

Merci pour votre aide.

Je développe en sur (code) ou sur Dreamweaver.


visiblement il s'agit d'une double liste chainée.
j'avais transmis une solution a base de classes
il y a au moins un an.

recherche dans les archves des news.
et je crois que les classes sont la :

http://php.classes.free.fr/



merci pour l'adresse
mais à l'exécution j'ai ce message :
"Warning: Call-time pass-by-reference has been deprecated - argument passed
by value; If you would like to pass it by reference, modify the declaration
of [runtime function name](). If you would like to enable call-time
pass-by-reference, you can set allow_call_time_pass_reference to true in
your INI file. However, future versions may not support this any longer. in
c:documents and settingsjmbmes documentssiteswebfsifctDoubleCombo.php
on line 150"

et un deuxième identique pour la ligne 179.
Je suis en PHP4 et bientôt ce sera PHP5. Alors comment gérer ce
"pass-by-reference" autrement ?
Je suis trop débutant pour trouver la solution tout seul !
d'avance merci
IB