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

PHP & Base de données Discussion :

afficher des champs d'un formulaire en fonction d'une liste déroulante


Sujet :

PHP & Base de données

  1. #1
    Débutant
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Points : 78
    Points
    78
    Par défaut afficher des champs d'un formulaire en fonction d'une liste déroulante
    Bonsoir à tous!!!

    J'ai créée un formulaire dans lequelle il y a une liste déroulante.
    Certains champs du formulaire doivent être caché en fonction de la selection dans la liste déroulante. Le problème c'est que je n'arrive pas à le faire est-il possible de m'aider à le faire s'il vous plaît?

    Merci d'avance.

  2. #2
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    Salut,
    Tu as deux choix possible : javscript ou php
    tu dois mettre une action onchange puis
    php -> des $_post ou get dans ton form (if($_GET[]) ... avant ton echo "<form type=\"input\"
    javascript -> fonction qui grise les input txt par exemple

    Pour plus d'aide a voir la solution que tu choisi

    Guigo

  3. #3
    Débutant
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Points : 78
    Points
    78
    Par défaut
    Le onChange doit faire appelle à une fonction non?

  4. #4
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    a depend si tu veux utiliser php ou javascript?

  5. #5
    Débutant
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Points : 78
    Points
    78
    Par défaut
    En utilisant PHP.

  6. #6
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Bonsoir,

    Avec juste un appel à javascript : onchange="submit();"
    Tu peux peut-être t'inspirer de ceci :
    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
    <?php 
    $selected = 'selected="selected"';
    (isset($_POST['liste'])) ? $liste = $_POST['liste'] : $liste = "";
    ?>
     
    <form action="" method="post">
    <select name="liste" onchange="submit();">
    	<option <?php if ($liste == "un") echo $selected; ?>>un</option >
    	<option <?php if ($liste == "deux") echo $selected; ?>>deux</option >
    </select>
     
     
    <?php
    if ($liste == "un") {
    ?>
    <p>Liste 1 : <input type="text"/></p>
    <?php	
    }
     
    if ($liste == "deux") {
    ?>
    <p>Liste 2 : <input type="text"/></p>
    <?php	
    }
    ?>
    </form>
    Fred

  7. #7
    Débutant
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Points : 78
    Points
    78
    Par défaut
    Merci beaucoup fred.

    Mais ça fonctionne à moitié :s

    Il me cache bien les champs qui doivent etre caché mais lorsqu'il doivent s'afficher il ne s'affiche pas.
    Voici mon code:
    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
     
     
    <OPTION <?php if ($demande == "un") echo $selected; ?>>un</OPTION>
                    <OPTION  <?php if ($demande == "deux") echo $selected; ?>>deux</OPTION>
                    <OPTION <?php if ($demande == "trois") echo $selected; ?>>trois</OPTION>
     
     
     
     
    <?php
    		if ($demande == "un") 
    		{
    	?>
      <tr>
        <td>Adresse*</td>
            <td><textarea name='adresse' cols='22' rows='5' style="width : 203px;"></textarea></td>
      </tr>
       <tr>
        <td>Code postal*</td>
        <td><input type="text" name='cp' size='22' id='CP'></td>
      </tr>
      <tr>
        <td>Ville*</i></td>
        <td><input type="text" name='ville' size='30'></td>
      </tr>
    <?php
    }
    ?>
    Je ne comprend pas

  8. #8
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    <?php
    //essaye avec un triple egal peut etre...
    //tu peux aussi debuger avec un echo $demande pour verifier ta valeur
    		if ($demande === "un") 
    		{
    Guigo

  9. #9
    Débutant
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Points : 78
    Points
    78
    Par défaut
    ça ne fonctionne pas

  10. #10
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    quelle valeur renvoie $demande?

  11. #11
    Débutant
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Points : 78
    Points
    78
    Par défaut
    Il renvoi rien

  12. #12
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    Ok alors le pb viens de la :-)


    ajoute au debut de ton code :
    Biensur verifie que tu as mis ta liste dans un form :-)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $demande=$_POST['liste'];

Discussions similaires

  1. [AC-2003] Ouvrir un formulaire en fonction d'une liste déroulante
    Par LinC49 dans le forum IHM
    Réponses: 13
    Dernier message: 02/06/2010, 10h46
  2. Réponses: 18
    Dernier message: 23/01/2009, 14h17
  3. Réponses: 2
    Dernier message: 07/05/2008, 09h09
  4. afficher des champs d'un formulaire en selectionnant une case à cocher
    Par bozykely3 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 06/06/2007, 09h33
  5. Réponses: 27
    Dernier message: 12/04/2007, 10h23

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