begin process at 2010 02 10 15:44:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

Liste déroulante javascript/php


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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&region=' + 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 question
In 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales