Accueil > Forum > > > > Liste déroulante javascript/php
Liste déroulante javascript/php
vendredi 31 août 2007 à 09:46:25 |
Liste déroulante javascript/php

AdelineAda
|
Bonjour,
Je ne suis pas très forte en Javascrip et apparement un peu dépassée en php (je ne suis pas développeuse mais j'ai en charge les sites internet dans la société où je travaille).
J'ai un soucis qui pourrait se résoudre très vite si vous pourriez m'aider ...
Je vous explique ce que je dois faire sur le site où je travaille actuellement : J'ai 2 listes déroulantes remplient dynamiquement par des requetes SQL. Ma 2em liste apparait lorsque j'ai fait un 1er choix dans ma 1er liste déroulante. Lorsque j'ai fait le choix dans ma 2em liste déroulante, le formulaire est lancé. C'est pour cela que j'ai du me servir du javascript que je ne connais pas du tout.
J'ai donc cherché un script que j'ai adapté en remplissante mes listes grace à des requetes.
Jusque la tout va bien. 
Mon soucis actuel, est que je dois garder le contenu de ma 1er liste lorsque j'ai déjà fait un 1er choix. Tout ceux qui programme un peu en PHP sait que cela est possible grace à l'attribut "selected" de la balise <option> mais je suis ici dans un cas qui me dépasse puisque je ne comprend rien à la ligne correspondante. Et je ne saurais dire cela vient du javascript ou du php. 
Pourriez vous m'aider à comprend quelle est la variable qui reprend la variable choisie ? et comment la passé dans mon selected lorsque qu'elle existe ?
Voici le code de la ligne que je ne comprend pas et qui contient le selected :
<option value="<?php echo($code_region[$i]); ?>"<?php echo((isset($idr) && $idr == $code_region[$i])?" selected=\"selected\"":null); ?>><?php echo($region[$i]);
Et voici le code de ma page entière si cel peut vous aider à comprendre le fonctionnement :
<?php echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n"); /* Variables de connexion : ajustez ces paramètres selon votre propre environnement */ $serveur = ""; // voir hébergeur $admin = ""; // vide ou "root" en local $mdp = ""; // vide en local $base = ""; // nom de la BD /* On récupère si elle existe la valeur de la région envoyée par le formulaire */ $idr = isset($_POST['region'])?$_POST['region']:null; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
"> <html xmlns="
http://www.w3.org/1999/xhtml
" xml:lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" /> <title>Sélectionner un département selon la région choisie</title> <script> function Lien (f) { i = f.elements['domaine'].selectedIndex; if (i == 0) return; top.location = 'domaine.php?page=dom®ion=' + f.elements['region'].value + '&domaine=' + f.elements['domaine'].value; } </script> </head> <body> <?php if(isset($_POST['domaine']) && $_POST['domaine'] != "") { $region_selectionnee = $_POST['region']; $dept_selectionne = $_POST['domaine']; ?> <p> <?php } ?> </p> <h3> <?php
/* On établit la connexion à MySQL avec mysql_pconnect() plutôt qu'avec mysql_connect() * car on aura besoin de la connexion un peu plus loin dans le script */ $connexion = mysql_pconnect($serveur, $admin, $mdp); if($connexion != false) { $choixbase = mysql_select_db($base, $connexion); $sql1 = "SELECT `id_region`, `nom_region` FROM `region` ORDER BY `nom_region`"; $rech_regions = mysql_query($sql1); $code_region = array(); $region = array();
/* On active un compteur pour les régions */ $nb_regions = 0; if($rech_regions != false) { while($ligne = mysql_fetch_assoc($rech_regions)) { array_push($code_region, $ligne['id_region']); array_push($region, $ligne['nom_region']);
/* On incrémente de compteur */ $nb_regions++; } } ?> </h3> <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgdept"> <table width="228" border="0" cellspacing="0" cellpadding="0"> <tr> <td colspan="2"> <select name="region" id="region" class="deroulant" onchange="document.forms['chgdept'].submit();"> <option value="-1">- Choisissez votre région -</option> <?php for($i = 0; $i < $nb_regions; $i++) { ?> <option value="<?php echo($code_region[$i]); ?>"<?php echo((isset($idr) && $idr == $code_region[$i])?" selected=\"selected\"":null); ?>><?php echo($region[$i]); ?> </option> <?php } ?> </select> </td> </tr> <tr> <td colspan="2"><img src="images/spacer.gif" width="1" height="10" /></td> </tr> <tr> <td width="203" height="22"> <?php mysql_free_result($rech_regions); /* On commence par vérifier si on a envoyé un numéro de région et le cas échéant s'il est différent de -1 */ if(isset($idr) && $idr != -1) {
/* Cération de la requête pour avoir les départements de cette région */ $sql2 = "SELECT id_domaine, nom_domaine, id_region, region_domaine_ FROM domaine, region WHERE `id_region` = ". $idr ." and region_domaine_ = id_region ORDER BY `nom_domaine`"; if($connexion != false) { $rech_dept = mysql_query($sql2, $connexion); /* Un petit compteur pour les départements */ $nd = 0; /* On crée deux tableaux pour les numéros et les noms des départements */ $code_dept = array(); $nom_dept = array();
/* On va mettre les numéros et noms des départements dans les deux tableaux */ while($ligne_dept = mysql_fetch_assoc($rech_dept)) { array_push($code_dept, $ligne_dept['id_domaine']); array_push($nom_dept, $ligne_dept['nom_domaine']); $nd++; }
/* Maintenant on peut construire la liste déroulante */ ?> <select name="domaine" id="departement" class="deroulant" onchange="Lien(this.form);"> <option value="-1">- Choisissez votre domaine -</option> <?php for($d = 0; $d<$nd; $d++) { ?> <option value="<?php echo($code_dept[$d]); ?>"<?php echo((isset($dept_selectionne) && $dept_selectionne == $code_dept[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_dept[$d].""); ?></option> <?php } ?> </select> </td> <?php } /* Un petit coup de balai */ mysql_free_result($rech_dept); $region=$_POST['region']; $domaine=$_POST['domaine']; ?> <td width="25"> <div align="center"> <?php if ($domaine!='') { echo ""; } else { echo ""; } } ?> </div></td> </tr> </table> </form> <?php /* Terminé, on ferme la connexion */ mysql_close($connexion); } else {
/* Si on arrive là, c'est pas bon signe, il faut vérifier les * paramètres de connexion, mot de passe, serveur pas démarré etc... */ ?> <p>Un incident s'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p> <?php } ?> </body> </html>
En espérant que vous pourrez m'aider !
--Adeline-Infographiste--
www.cideo.fr
- Cidéo, agence de communication
|
|
vendredi 31 août 2007 à 11:21:05 |
Re : Liste déroulante javascript/php

coucou747
|
par curiosite : a quoi sert cette partie de ton code ?
if ($domaine!='') {
echo "";
}
else {
echo "";
}
|
|
vendredi 31 août 2007 à 11:24:22 |
Re : Liste déroulante javascript/php

AdelineAda
|
Et bien pour être franche ... J'en sais rien... J'ai fait plein de bidouille qd certaines choses fonctionnaient pas ... Tu penses que le "if" ne sert à rien ? je pourrais le supprimer ? --Adeline-Infographiste-- www.cideo.fr - Cidéo, agence de communication
|
|
vendredi 31 août 2007 à 17:03:22 |
Re : Liste déroulante javascript/php

coucou747
|
Salut voila une traduction de ton code en francais si quelquechose alors afficher(chaine vide) sinon afficher(chaine vide) en d'autre termes : dans tout les cas : afficher(chaine vide) soit en plus court : ne rien faire une recherche sur exalead vous aurait peut-etre evite de poser cette questionIn a dream, I saw me, drop dead... U were there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy
|
|
vendredi 31 août 2007 à 17:25:44 |
Re : Liste déroulante javascript/php

AdelineAda
|
Ah ! ok Je croyais que tu parlais d'une ligne plus haut ... Alors la je suis d'accord avec toi... Et concernant mon problème ... Tu vois comment l'aider ? --Adeline-Infographiste-- www.cideo.fr - Cidéo, agence de communication
|
|
samedi 1 septembre 2007 à 19:40:05 |
Re : Liste déroulante javascript/php

Ankaa1988
|
désoler mais je ne vois pas ce que tu veux faire
apres l'envoie du formulaire on va où? on recharge la même page et
c'est la que tu veux que le choix de la premièer liste soit le meme que
précedement? c'est bien ca?
et tu veux faire passer quoi comme information par ton formulaire? les 2 choix des 2 listes?
|
|
mardi 4 septembre 2007 à 11:21:56 |
Re : Liste déroulante javascript/php

AdelineAda
|
Bonjour Ankaa1988, Bon alors, Ma page ci-dessus est en include() sur ma page principale qui me montre les infos que je veux voir grace aux listes déroulantes. Je souhaiterais que lorsque j'ai envoyé mon formulaire, donc lorsque j'ai déjà fait un choix dans ma 1er liste déroulante, ce choix reste en selected après l'envoi de mon formulaire. Voici ma page principale : [ Lien ]si cela peut vous aider... Si vous avez d'autres questions ! N'hésitez pas ... Cette modification sur le site commence à se faire urgente et je n'y arrive pas ... mais que je suis nulle ... --Adeline-Infographiste-- www.cideo.fr - Cidéo, agence de communication
|
|
mardi 4 septembre 2007 à 19:26:32 |
Re : Liste déroulante javascript/php

Ankaa1988
|
je n'ai pas lu ta page autant le dire car je n'ai pas le temps et j'en suis désolé... cependant si tu veux transmettre des infos après envoie de formulaire il faut utiliser le php (obligé) donc je m'imagine un code du style:
donc tu as tes 2 elements selectionnés... du coup lorsque tu envoie le formulaire du récupère les valeurs selectionnés en php en utilisant $_POST['liste1'] et $_POST['liste2'] puis en javascript tu utilises un simple if et une boucle ie script for(a=0;a<nb d'elmt ds liste,a++){ if(a=<?php $_POST['liste1']; ?> ) { document.form.nomliste.options[a].selected=true; } idem pour la 2 } voila bon ce code est a verifié car la syntaxe doit être incorrect et a réadapter pour ton site mas il me semble que l'idée est la si j'ai bien tout compris... ++ et bon courage
|
|
Cette discussion est classée dans : mysql, connexion, domaine, dept, region
Répondre à ce message
Sujets en rapport avec ce message
Probleme de liste deroulante avec plusieurs infos [ par kprlao ]
salut.J'ai un petit soucis sur ma mise à jour de ma liste déroulante, alors je demande à l'aide.lol.Le popup que j'ouvre à plusieurs données de type c
select lie [ par leon988 ]
Bonjour à tous, Pour mon site je dois créer un formulaire de recherche avec 3 selects Select1= selection d'une activite <p clas
connexion à mysql avec javascript [ par faluma972 ]
Salut,Je travaille sur une application php et j'ai créé une fonction qui doit chercher le résultat en exécutant une requete sql à ma base de donnée my
Connexion à une base MySql en javascript [ par theoorleans45 ]
Bonjour à tous, J'ai du mal avec Javascript. Et j'aurai besoin de réaliser un truc. ça doit être faisable et je pensais trouver mon bonheur sur inte
Somme de valeur - Case a cocher [ par piep14 ]
Bonjour le forum, j'ai fait un code qui additionne les valeurs tiré d'une table. <span cla
liste deroulantes ki rempli un champ [ par gabs77 ]
bonjour, j aimerais ke lorsque l'on sélectionne un champ d'une liste deroulanteinstantanément une donnée de la bdd associé à ce champ apparaissentg un
Appel d'une classe de connexion jdbc par jsp [ par sniper83 ]
Salut es que quelqu'un a une classe qui fait une connexion jdbc avec oracle par un appel depuis une page jsp merci
lien : ···/fichier.htm?l=fr [ par astuces_jeux ]
bonjour je cherche a faire un lien quand tu fait par exemplehttp://www.votre-domaine.com/index.htm?l=fr a la place de <A href="htt
probleme formulaire dynamique mysql [ par gael972 ]
Bonjour tout le monde,J'ai besoin de vous .Je veux creer un formulaire dynamique c'est a dire un formulaire avec des Boite a liste dynamique j'ai donc
liste deroulantes et information de liste instantanée [ par gabs77 ]
bonjour, je suis en trin de faire un formulaire avec une liste deroulantes afin de proposer un eventail de choix, or pour avoir des informations sur l
Livres en rapport
|
Derniers Blogs
[DESIGN PATTERNS] PARTIE 2: DIP: DEPENDENCY INVERSION PRINCIPLE[DESIGN PATTERNS] PARTIE 2: DIP: DEPENDENCY INVERSION PRINCIPLE par tja
C'est le dernier principe des principes du Design Orienté Objet (The Principles of Object Oriented Design) fondés par Robert C. Martin plus connu sous le pseudonyme d'Uncle Bob.
l'image empruntée de LosTechies.
Je ne traite pas les principes dans...
Cliquez pour lire la suite de l'article par tja TECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURSTECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURS par ROMELARD Fabrice
Animé par: Laurent Cotton Le développement dans SharePoint 2010 passe par plusieurs axes qui seront évoqués dans cette session, mais plus particulièrement les développements simples lié au besoin Business Business Connectivity Services Ce BCS es...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOURTECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOUR par ROMELARD Fabrice
Cette session est la dernière pleinière de ces 3 jours de TechDays Paris 2010. Généralement, cette troisième journée est plus axée sur l'avenir vu par Microsoft. Après un retour sur l'avenir vu par la Science Fiction ou par ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|