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 :

affichage conditionnel liste deroulante [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre éprouvé Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Points : 929
    Points
    929
    Par défaut affichage conditionnel liste deroulante
    Grand débutant en php et html, j'essaie d'afficher (ou rendre inactive) une liste déroulante suivant les valeurs d'une autre liste deroulante. J'ai essayé le code suivant mais sans succès. Je n'ai pas trop d'autres idées.
    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
    <html>
     
    	<head>
    		<title>TP4</title>
    	<head/>
     
    	<body>
     
    		<form name="formulaire1" method="post" action="page1.php">
    			<table>
    				<tr>
    					<td>Système:</td>
    					<td>
    					<SELECT name="Système">
    						<OPTION VALUE="RGF93">RGF93</OPTION>
    						<OPTION VALUE="ETRS89">ETRS89</OPTION>
    						<OPTION VALUE="ITRF05">ITRF05</OPTION>
    					</SELECT>
    					</td>
    					<td>Type:</td>
    					<td>
    					<SELECT name="Type">
    						<OPTION VALUE="cartesiennes">Cartesiennes</OPTION>
    						<OPTION VALUE="geographiques">Geographiques</OPTION>
    					</SELECT>
    					</td>
    					<td>Unité:</td>
    					<td>
    					<?php
    					if ($_POST[Type]=='geographiques'){
    						<SELECT name="Unité">
    							<OPTION VALUE="degrés">degrés</OPTION>
    							<OPTION VALUE="degmin">degrés minutes</OPTION>
    							<OPTION VALUE="degminsec">degrés minutes secondes</OPTION>
    						</SELECT>
    					}
    					?>
    					</td>
    				</tr>
    			</table>
    		</form>
     
     
    	<body/>
     
    </html>
    Merci d'avance

  2. #2
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Bonsoir.

    Premier point :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    /** On écrit */
    $_POST['Type'] /* et non $_POST[Type]*/
    Second point, une variable $_POST[] est envoyée depuis la validation d'un formulaire. Hors avec ce code, le formulaire n'est pas envoyé que tu veux déjà utiliser la variable $_POST[].

    C'est pas comme ça que ça marche. Je te renvoi dans un premier temps à ceci : Les Formulaires.

    Dans un second temps, ce que tu veux faire peut être fait via Javascript avec l'événement onchange
    "Dites moi ce dont vous avez besoin, je vous apprendrai à vous en passer".
    Et de grâce, je ne possède pas le plugin boule de cristal de firefox, alors soyez clair dans vos questions.

    Je lutte contre le language SMS.

  3. #3
    Membre éprouvé Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Points : 929
    Points
    929
    Par défaut Envoyer un formulaire
    Je ne comprends pas comment envoyer le formulaire, je suis pourtant bien allé sur le lien mais je ne vois pas comment faire. N'y Désolé de faire le boulet mais un peu d'aide me serait bien utile.

  4. #4
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Tiens essayes ça :
    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
    60
    61
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <script type="text/javascript">
    function Affiche()
        {
            var selection = document.getElementById('Type').value;
            var afficher = document.getElementById('voir');
            if(selection == "geographiques")
                {
                    afficher.style.display = "block";
                    }
            else
                {
                    afficher.style.display = "none";
                    }
            }
    </script>
    </head>
     
    <body>
     
            <form name="formulaire1" method="post" action="page1.php">
                <table>
                    <tr>
                        <td>Système:</td>
                        <td>
                        <SELECT name="Système">
                            <OPTION VALUE="RGF93">RGF93</OPTION>
                            <OPTION VALUE="ETRS89">ETRS89</OPTION>
                            <OPTION VALUE="ITRF05">ITRF05</OPTION>
                        </SELECT>
                        </td>
                        <td>Type:</td>
                        <td>
                        <SELECT name="Type" id="Type" onchange="javascript:Affiche();">
                            <OPTION VALUE="cartesiennes">Cartesiennes</OPTION>
                            <OPTION VALUE="geographiques">Geographiques</OPTION>
                        </SELECT>
                        </td>
                        <td>&nbsp;</td>
                        <td>
                        <div id="voir" style="display:none;">
                            Unité : <SELECT name="Unité">
                                <OPTION VALUE="degrés">degrés</OPTION>
                                <OPTION VALUE="degmin">degrés minutes</OPTION>
                                <OPTION VALUE="degminsec">degrés minutes secondes</OPTION>
                            </SELECT>
                        </div>
                        </td>
                    </tr>
                </table>
            </form>
     
     
        <body/>
     
    </html>
    "Dites moi ce dont vous avez besoin, je vous apprendrai à vous en passer".
    Et de grâce, je ne possède pas le plugin boule de cristal de firefox, alors soyez clair dans vos questions.

    Je lutte contre le language SMS.

  5. #5
    Membre éprouvé Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Points : 929
    Points
    929
    Par défaut Merci pour la réponse mais...
    Je te remercie pour cette réponse mais je ne connais rien à javascript et j'aurais aimé le faire simplement en html + php.
    D'autre part comment récupérer les valeurs d'une balise SELECT? Je ne comprends pas bien le mechanisme d'envoi de formulaire. Quelques precisions me seraient bien utiles.

    Merci encore pour ta solution.

  6. #6
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    La problématique de ton formulaire et que lorsqu'un utilisateur sélectionne un type, notamment le type "geographiques", les unités doivent apparaître.

    Hors, si tu le fait uniquement en HTML et en PHP, l'utilisateur ne verra les unités qu'après validation du formulaire et non lorsqu'il en aura besoin.

    Par définition le HTML est figé. Tu ne peux pas le faire évoluer selon les actions utilisateurs sans scripts tiers. D'où le Javascript, qui lui modifie dynamiquement le HTML.

    Concernant la récupération des valeurs d'un select :
    dans une page (extension HTM ou HTML)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form action="une_page.php" method="post">
    <select name="selection">
      <option value="oui">Oui</option>
      <option value="non">Non</option>
    </select>
    </form>
    Dans une autre page (extension PHP)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $choix_dans_la_liste = $_POST['selection'];
    echo $choix_dans_la_liste;
    /** Tu auras donc Oui ou Non selon le choix effectué. */
    "Dites moi ce dont vous avez besoin, je vous apprendrai à vous en passer".
    Et de grâce, je ne possède pas le plugin boule de cristal de firefox, alors soyez clair dans vos questions.

    Je lutte contre le language SMS.

  7. #7
    Membre éprouvé Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Points : 929
    Points
    929
    Par défaut
    Oui j'ai bien compris ce que tu veux dire mais php ne peut t'il pas faire la même chose que javascript, c'est juste une question de langage. N'y a t'il pas un autre moyen de récupérer les valeurs du select sans faire un "submit"? Moi je ne sais pas le faire autrement.

    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
    <html>
     
    	<head>
    		<title>test</title>
    	<head/>
     
    	<body>
    		<form action="la_même_page.php" method="post">
    			<select name="selection">
    				<option value="oui">Oui</option>
    				<option value="non">Non</option>
    			</select>
                            <input type="submit" name="valider" value="OK"/>
    		</form>
    	<body/>
    <html/>

    De plus je veux récupérer les valeurs du select dans la même page en mettant le nom de la ma page dans action.

  8. #8
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Citation Envoyé par issoram Voir le message
    ...mais php ne peut t'il pas faire la même chose que javascript, c'est juste une question de langage. ...
    Non, pas d'autre moyen sans validation de l'utilisateur. C'est pas juste une question de langage. un script PHP est lu dans son intégralité et génère un affichage HTML dans la plupart des cas donc du statique. (le HTML s'entend).

    Citation Envoyé par issoram Voir le message
    De plus je veux récupérer les valeurs du select dans la même page en mettant le nom de la ma page dans action.
    Ca c'est possible avec un switch par exemple.

    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
    <?php
    switch(@$_POST['action'])
     {
       case "afficher":
          echo "Tes valeurs sélectionnés.";
       break;
       
       default:
    
      echo '
     <form action="la_même_page.php" method="post">
          <select name="selection">
              <option value="oui">Oui</option>
              <option value="non">Non</option>
          </select>
               <input type="hidden" name="action" value="afficher" />
               <input type="submit" name="valider" value="OK"/>
     </form>';
    
    
     }
    
    ?>
    "Dites moi ce dont vous avez besoin, je vous apprendrai à vous en passer".
    Et de grâce, je ne possède pas le plugin boule de cristal de firefox, alors soyez clair dans vos questions.

    Je lutte contre le language SMS.

  9. #9
    Membre éprouvé Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Points : 929
    Points
    929
    Par défaut Petite question
    A quoi sert cette ligne:

    Merci

  10. #10
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Citation Envoyé par issoram Voir le message
    A quoi sert cette ligne:

    Merci
    C'est une case vide pour respecter le format de ton tableau.

    &nbsp; signifie le caractère de la barre d'espace.
    "Dites moi ce dont vous avez besoin, je vous apprendrai à vous en passer".
    Et de grâce, je ne possède pas le plugin boule de cristal de firefox, alors soyez clair dans vos questions.

    Je lutte contre le language SMS.

  11. #11
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Juin 2009
    Messages : 104
    Points : 120
    Points
    120
    Par défaut
    &nbsp; => Non Breakable SPace => un caractère vierge insécable.

    ce que tu dois comprendre entre JS et PHP
    le PHP est un language serveur => c'est sur le serveur "web" que se passent les "mouvement" => fonction de se qu'on lui envoi, il réagit.
    en clickant sur
    <input type="submit" name="valider" value="OK"/>
    la page est "submit" / soumise au serveur php, qui re-réagit

    Le JS est un langage client => c'est ton navigateur (même hors connection) qui réagit aux commandes => fonction de ce qu'on lui demande il réagit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     <select name="selection" OnChange:"XXXXX">
              <option value="oui">Oui</option>
              <option value="non">Non</option>
          </select>
    le OnChange n'a pas besoin de repasser par un serveur, il fait référence à un script contenu dans la page, il peut donc "jouer tout seul".

  12. #12
    Membre éprouvé Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Points : 929
    Points
    929
    Par défaut resolu
    Merci à pour toutes ces explications. Je me mets au javascript....

  13. #13
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Citation Envoyé par cholopat Voir le message
    &nbsp; => Non Breakable SPace => un caractère vierge insécable.

    (...)
    Merci pour cette précision. Je ne le savais pas ou plus.
    "Dites moi ce dont vous avez besoin, je vous apprendrai à vous en passer".
    Et de grâce, je ne possède pas le plugin boule de cristal de firefox, alors soyez clair dans vos questions.

    Je lutte contre le language SMS.

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

Discussions similaires

  1. affichage contenu liste deroulante
    Par moicats dans le forum IHM
    Réponses: 6
    Dernier message: 15/03/2010, 09h15
  2. Affichage selon liste deroulante
    Par piero53 dans le forum Langage
    Réponses: 34
    Dernier message: 26/01/2010, 11h42
  3. Affichage de liste déroulante
    Par VincentKok dans le forum IHM
    Réponses: 20
    Dernier message: 20/08/2007, 15h20
  4. [JSP] Affichage selon liste deroulante
    Par cnguyen dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 10/06/2006, 19h21
  5. Réponses: 5
    Dernier message: 25/10/2005, 20h51

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