IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP-JS] Deux listes déroulantes dynamiques [Fait]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Points : 58
    Points
    58
    Par défaut [PHP-JS] Deux listes déroulantes dynamiques
    bonjour à tous,
    j'ai crée deux liste déroulantes l'une affiche les reponses positives l'autre affiche les reponse négatives, j'ai crée deux bouttons radio un permet d'aficher la liste déroulante des réponses positives l'autre permet d'aficher la liste des réponses négatives et cela à l'aide d'une fonction javascript qui vérifie les bouttons. mon problème c'est que à l'éxecution quand je selectionne une donnée dans la première liste et je valide le champ est considéré vide par contre quand je selectionne une donnée dans la deuxième liste ça marche. j'ai mis le même nom pour les listes.

    voila si vous voulez voir le code pas de soucis
    merci de toutes intervention

  2. #2
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    Citation Envoyé par zana74
    j'ai mis le même nom pour les listes.
    Si les champs portent le même nom, tu risques d'avoir des difficultés pour récupérer les valeurs.
    Effectivement, le mieux serait de poster ton code pour voir.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Points : 58
    Points
    58
    Par défaut
    les deux fonctions qui permet de verifier les bouttons radio
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    function verifBouton1()
    {
    display=""; //par defaut prend la valeur vide (affiché)
    if (document.getElementById('radio1').checked) { //Si le premier bouton est caché, on cache le div (sinon il est affiché par defaut)
    document.getElementById('afficherselect1').style.display="block";
    document.getElementById('afficherselect2').style.display="none";
    }
    }  
    function verifBouton2()
    {
    display=""; //par defaut prend la valeur vide (affiché)
    if (document.getElementById('radio2').checked) { //Si le premier bouton est caché, on cache le div (sinon il est affiché par defaut)
    document.getElementById('afficherselect2').style.display="block";
    document.getElementById('afficherselect1').style.display="none";
    }
    }
    code des deux listes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <tr>
    <TD width="182" align="center" height="16">
    <p align="left"><font color="#396BAD">Solutions <b>&amp; </b>Reponses:</font></TD>
    <TD width="182" align="center" height="16">
    <input type='radio' id='radio1' name='radio1' onclick='verifBouton1();' /><font color="#396BAD">Réponses positives</font>
    <!--liste  déroulante caché-->
    <div style='display:none;' id='afficherselect1' >
     
    <?php 
    // Affiche les resultat d'un requete dans une liste déroulante 
    $query="select * from reponse where ouinon='Oui'";
    $result=mysql_query($query); 
    $nombrelignes = mysql_num_rows($result); 
     
    if ($nombrelignes==0) 
        echo"il n'y a pas d'enregistrements";
    else
    {echo "<select  name=idrep style='color: #FFFFFF; border: 1px solid #81A2CB; background-color: #81A2CB'> ";
    echo"<option selected>  	</option>";
    for ($i=0;$i<$nombrelignes;$i++) { 
    $oui = mysql_result($result,$i,"rep"); 
    $idoui = mysql_result($result,$i,"idrep"); 
    echo "<option value=$idoui> $oui </option>"; 
     
    } 
     
    echo "</select>"; 
    }?>	
    </div>
    </td>
    <TD width="182" align="center" height="16">
    <input type='radio' id='radio2' name='radio2' onclick='verifBouton2();'/><font color="#396BAD">Réponses négatives</font>
    <!--liste déroulante cachée-->
    <div style='display:none;' id='afficherselect2' >
     
    <?php 
    // Affiche les resultat d'un requete dans une liste déroulante 
    $query="select * from reponse where ouinon ='Non'";
    $result=mysql_query($query); 
    $nombrelignes = mysql_num_rows($result); 
     
    if ($nombrelignes==0) 
        echo"il n'y a pas d'enregistrements";
    else
    {echo "<select  name=idrep style='color: #FFFFFF; border: 1px solid #81A2CB; background-color: #81A2CB'> ";
    echo"<option selected>  	</option>";
    for ($i=0;$i<$nombrelignes;$i++) { 
    $non= mysql_result($result,$i,"rep"); 
    $idnon = mysql_result($result,$i,"idrep"); 
    echo "<option value=$idnon> $non</option>"; 
     
    } 
     
    echo "</select>"; 
    }?>			
    </div>
    </td>
     
    </tr>

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Points : 58
    Points
    58
    Par défaut
    bonsoir à tous!
    je ne sais pas si j'ai mal expliqué mon problème ou juste pas de chance pour les réponses

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Si tes deux listes portent le même nom, il est normal que cela ne fonctionne pas bien et que seule la valeur de la deuxième liste soit prise en compte (puisqu'elle écrase la précédente).
    Chaque contrôle de formulaire doit avoir un nom unique dans ce formulaire.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Points : 58
    Points
    58
    Par défaut
    bonjour et merci de vos réponses,

    j'ai mis le même nom pour les listes parce que quand j'ai le droit que de selectionner une donnée soit dans une liste soit dans l'autre à un moment donné et dans la base j'ai un seul champ réponse , qu'est ce vous me conseillez de faire?

  7. #7
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 981
    Points
    2 981
    Par défaut
    Tu peux parfaitement changé le nom des liste et les enregistrer dans le même champ en db.

    Je vois pas ou est le problème.

    Vérifie juste si les données passées au formulaire sont celle que tu attends bien.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Points : 58
    Points
    58
    Par défaut
    comment verifier du formulaire si j'ai 2 noms de liste differents car quand j'insère dans la base je doit inserer une seule valeur.
    voila la verification du formulaire, le nom que j'ai donné au listes c'est idrep
    ce que je veux avoir c 'est quand je selectionne une donnée dans l'une des listes il me l'insere dans la base.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    include ("Classappel.php");
    $dat=$_POST["date"];
    $h=$_POST["heure"];
    $m=$_POST["minute"];
    $s=$_POST["second"];
    $heure= $h . ":" . $m . ":" . $s;
     
    $dat_appel=$dat." ".$heure;
     
    $newa = new Appel();
    if ((empty($dat_appel)) || (empty($_POST["idqui_appelle"])) ||(empty($_POST["idlieu"])) || (empty($_POST["idnation"])) ||
            (empty($_POST["idsituation"]))||(empty($_POST["idtrancheage"]))||(empty($_POST["iddemande"]))||(empty($_POST["idpro"]))||(empty($_POST["idrep"])))
     
        {echo "<H4>Certains champs sont restés vides,ou la date est superieur à la date du jour<br>Veuillez remplir tous les champs !";
          echo "<br><br><br><br>";
          echo "<H4><a href='Javascript:history.go(-1)'>Retour à la page d'ajout d'un appel</a><br>";
        }

  9. #9
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    La question est donc : pourquoi as-tu deux listes ? Tu pourrais probablement n'en avoir qu'une et utoliser <optgroup> comme suggéré dans ce tutoriel : Les formulaires et PHP

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Points : 58
    Points
    58
    Par défaut
    Merci beaucoup Yogui,
    je viens de modifier mon code en utilisant une seule liste avec <optgroupe> que je viens de découvrir grace à toi.
    maintenant ça marche!! Encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Deux listes déroulantes dynamiques
    Par geforce dans le forum JSF
    Réponses: 10
    Dernier message: 11/01/2012, 17h17
  2. [PHP-JS] Listes déroulantes dynamiques - suite -
    Par Gloubie dans le forum Langage
    Réponses: 5
    Dernier message: 16/11/2006, 13h47
  3. [SQL] Liste déroulante dynamique PHP only
    Par gforce dans le forum PHP & Base de données
    Réponses: 24
    Dernier message: 11/05/2006, 21h30
  4. [PHP-JS] Création de liste déroulante dynamique
    Par eeckhout dans le forum Langage
    Réponses: 2
    Dernier message: 28/02/2006, 13h41
  5. [PHP-JS] Lier deux listes déroulantes
    Par budiste dans le forum Langage
    Réponses: 6
    Dernier message: 15/11/2005, 15h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo