Listes déroulantes dynamiques

loulou -  
Bobinours Messages postés 2903 Statut Membre -
salut !!!

je voudrais faire une liste déroulante. En fait, quand l'utiltisateur cliquera sur la premiere liste et choisira un service, tous les noms des personnes du services apparaiteront dans la deuxieme liste et l'utilisateur pourra choisir ce qu'il veut.

17 réponses

loulou
 
j'ai oublié de dire que je programme en php. voila je crois que c'est tout!!
0
xav1611 Messages postés 527 Statut Membre 13
 
Salut,

Tu veux faire ça en quel langage?
0
soa cool
 
Tu es trop lent xav1611 !!!!!
lolllllllllllllll
0
jisisv Messages postés 3678 Statut Modérateur 935
 
<head>
<script language="JavaScript"
<!--
regions[0] = new Array();
regions[0][1] = "---" ;
regions[1] = new Array();
regions[1][0] = "---" ;
regions[2] = new Array();
regions[2][0] = "---" ;
regions[2][1] = "R?gion Bruxelloise" ;
regions[2][2] = "R?gion wallonne" ;
regions[2][3] = "Vlaamse gewest" ;
regions[3] = new Array();
regions[3][0] = "---" ;
regions[3][1] = "Aquitaine" ;
regions[3][2] = "Charente" ;
regions[3][3] = "Poitou" ;
regions[3][4] = "Ile de France" ;
regions[4] = new Array();
regions[4][0] = "---" ;
regions[4][1] = "Limburg" ;
regions[4][2] = "Friesland" ;
function makeOptions(f,n) {
f.actgeo_r.options.length = 0;
index = f.actgeo_c.options[n].value;
for(i=0; i< regions[index].length; i++) {
var x = new Option(regions[index][i], i);
f.actgeo_r.options[f.actgeo_r.options.length] = x;
}
}
//-->
</script>
</head>
<body>
<form name="form0"......>
<select name="actgeo_c" onChange="makeOptions(document.form0, document.form0.actgeo_c.selectedIndex )" >
<option value="0" selected="selected">---</option>
<option value="5">Allemagne</option>
<option value="1">Autre</option>
<option value="6">Autriche</option>
<option value="2">Belgique</option>

<option value="9">Danemark</option>
<option value="16">Espagne</option>
<option value="12">Finlande</option>
<option value="3">France</option>
<option value="7">Gr?ce</option>
<option value="11">Irlande</option>

<option value="8">Italie</option>
<option value="10">Luxembourg</option>
<option value="4">Pays-Bas</option>
<option value="13">Portugal</option>
<option value="14">Royaume-Uni</option>
<option value="15">Su?de</option>
</select>
<select name="actgeo_r" >
<option value="1">---</option>
</select>
</form>
</body>

Quelque chose du genre doit fonctionner....
A éditer corretement.....
Johan

The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
0
jisisv Messages postés 3678 Statut Modérateur 935
 
Il est clair que ceci est un rapide copier/coller de mes pages.
Les fonctions Javascript sont dans un fichier séparé.
Les arrays Javascripts sont créés dynamiquement par PHP/MySQL en utilisant ModeliXe.
http://modelixe.phpedit.com

Bon amusement
Johan
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
loulou
 
mais en fait, mes données sont en lien avec les bases de données. Est-ce que ça va marcher??? Est-ce qu'il est possible de faire ça avec php/Mysql??
0
loulou
 
c'est pas que.......... mais je comprends pas tout ce script!!!
0
loulou
 
en fait, j'ai fait un script mais ça ne marche pas, il ne met pas les personnes dans la deuxieme liste déroulante!!!
<select name="nomdest">
<?php
//cnx à la bd
$bd = mysql_connect('localhost', 'login','mot de passe') or die ("erreur de connexion");
//séléction de la bd
mysql_select_db("courrier", $bd) or die("erreur de connexion à la base");

$sql = "SELECT * FROM destinataire, service where noservice = refnoservice";
$result = mysql_query($sql);
while ($article = mysql_fetch_object($result))
{
echo '<option value = '.$article->nodestinataire.'>'.$article->nomdestinataire.'</option>';
}
mysql_close();
?>
</select>
0
fou2dodie Messages postés 606 Statut Membre 33
 
je ne veux pas être méchant mais dixit eaulive
Si tu n'es pas sûr de comprendre la réponse,
ne pose pas la question... Eaulive.


alors bosse un peu plus ton php car déjà vendredi t'as fait le même coup avec tes formulaires!
donc achéte toi un bon bouquin en php, en bdd et en html!
une fois le tout potasser tu comprendras plus vite l'aide fourni par les gens ici!

bonne chance à toi et à ton projet

LMCT

All I know is I’m in love 
with someone who loves me too. 
0
loulou
 
sympat de se faire remballer quand on demande de l'aide!!!
0
fou2dodie Messages postés 606 Statut Membre 33
 
non ce n'est pas que je te remballe parce que tu demandes de l'aide mais simplement parce que des gens prennent du temps pour t'aider mais que de ton coté tu n'as pas l'air de faire le moindre effort pour essayer de comprendre tous seul ou alors tu es particuliérement stupide!chose que je ne pense pas!
c'est pourquoi je te conseil vivement de potasser tes bouquins un peu plus afin de comprendre les réponses qui te sont fournis!
même moi qui ne m'y connait absolument pas dans certains langages je suis capable de voir la logique que celui-ci suit et donc pouvoir ensuitefaire qq modif par dessus!
donc bosse un peu et réfléchis sur les réponses fournient!
ccm n'est pas la pour te faire tout ton travail mais justement pour te filer un coup de main quand tu séches!

alors bon courage

LMCT

All I know is I’m in love 
with someone who loves me too. 
0
loulou
 
ce n'est pas que j'y met de la mauvaise volonté mais je comprends pas tout en prog!!! pour ce qui est de la logique ... humhum!!!!!!!!
0
jisisv Messages postés 3678 Statut Modérateur 935
 
<head>
<script language="JavaScript" >
<!--

The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
0
jisisv Messages postés 3678 Statut Modérateur 935
 
Désolé , mon message est parti trop tôt.
Ne pas oublier le ">" de la balise script
<head>
<script language="JavaScript" >
<!--

Johan
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
0
Bobinours Messages postés 2903 Statut Membre 504
 
Salut loulou.

C'est encore un problème extrêmement compliqué auquel tu t'attaques.
Très peu de développeurs utilisent ce genre de script car il est très complexe.

Le code de jisiv (que j'ai survolé) marche bien pour une utilisation en JavaScript, donc avec des valeurs qu'on connait dès le chargement de la page.
J'ai le même genre de script ici : http://bobin.underlands.org/exemples/#id11

En ce qui te concerne, tu récupères les infos dans une base de données ce qui implique la nécessité de refaire une requête SQL par la suite.

Je vois deux solutions possibles, mais cela dépend de la taille de tes bases. Combien y a-t-il de services différents au maximum et combien de personnes dans l'ensemble de tous les services ?

La première solution est de générer un tableau JavaScript avec toutes les personnes de la base qui sera utiliser après par le script (celui de jisiv ou le mien). Cette solution deviendra vite très lourde si le nombre est trop important et si les informations affichées sont trop lourdes (nombre de caractères).

La deuxième est plus modeste, mais moins conviviale car elle nécessite un rechargement de la page.
Lorsque la personne choisi la première liste, tu envoies automatiquement le formulaire avec le paramètre de la liste, par exemple : Service=Administratif. Tu recharge alors le même formulaire, en récupérant toutes les valeurs déjà saisies et en les réaffectant aux champs, puis en fonction du "Service", tu fais une nouvelle requête sur "Personnes" pour construire la liste d'<OPTION>

Mais avant tout, pour choisir, il faut connaitre la taille potentiel des deux tables.

-= Bobinours - Moi aussi "I installed Unix" tout juste :-) =-
0
loulou
 
pour ce qui est du nombre de services, il y en a une dizaine mais il y a entre 35 et 40 personnes.
autrement, je préfererais que le formulaire reste sur la meme page. mais bon, si y a pas moyen.......
0
jisisv Messages postés 3678 Statut Modérateur 935
 
Petites explications si nécessaires:
regions[i] est le vecteur JavaScript contenant les valeurs à afficher dans le second menu déroulant (ici les régions des différents pays de la CEE) pour le pays d'indice i.

Lors de la sélection du pays (select actgeo_c) le menu déroulant des régions est tout simplement mis à jour avec la fonction JavaScript makeOptions.
Ceci fonctionnera tant que le volume de tes listes n'est pas trop important.
Si celà devient plus lourd, il faudra peut-être renvoyer une requête vers le serveur.
Johan

The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
0
Bobinours Messages postés 2903 Statut Membre 504
 
jisiv : juste pour info, je ne crois pas que ton script soit compatible avec Netscape 4 à cause de ...liste.length = 0; qui n'est pas bien interprété.

Mais vu que loulou doit être compatible avec IE, je vais utiliser ton script qui est plus simple.

loulou : 50 personnes ça me parait tout à fait correct pour le script JavaScript.

Dans un premier temps, il faut qut tu comprennes le script de jisiv. Y a-t-il quelque chose que tu ne comprends pas ?

-= Bobinours - http://bobin.underlands.org =-
0