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
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|