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 :

recup option de select


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    en retaite
    Inscrit en
    Mai 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : en retaite
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 164
    Points : 99
    Points
    99
    Par défaut recup option de select
    Bonjour à tous,

    Voici le bout de code qui me fait des misères ...

    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
     
    		echo "<form>";
    		echo '<form action="Menu_personnes_HV.php" method="POST"> ';
    		echo ' DOYENNE sélectionné : <td> <select name="id_doyenne">';   echo liste_doyennes("").' </select> </td> </tr>';
     
    		?>
    		<select id="mon_choix">
      			<option value="valeur1"> AVEC les Photos </option> 
      			<option value="valeur2"> SANS les Photos </option>
      	        </select>
    		<?php
     
    		echo ' <input type="submit" value=" Valider CE(s) Choix " > ';
     
    		echo "</form>";
     
    		if (isset($_POST['mon_choix']) and $_POST['mon_choix'] <> "" ) {		echo "mon_choix : ".$mon_choix; exit; }
     
    		//  echo "mon_choix : ".@$mon_choix; exit;
     
    		//  dump_post();
    Je voudrais récupérer (en php) la valeur résultant du choix fait dans l'option "AVEC ou SANS photo" pour m'en servir plus loin dans le code pour rajouter (éventuellement) une clause where à ma requête ...

    Je n'y arrive pas !

    Merci de votre aide.
    Cordialement
    maub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- tu as 2 balises <form>
    2- c'est <select name="...">

    "Formulaire PHP"

  3. #3
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 888
    Points : 6 632
    Points
    6 632
    Par défaut
    À ta place j'utiliserai les balises courtes <?= $variable ?> plutôt que <?php echo $variable; ?> ainsi que la syntaxe alternative des structures de contrôle if, for, foreach, etc. pour éviter de t'enmêler les pinceaux avec tes balises html (en couplant le tout à une indentation rigoureuse). 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
    <form action="Menu_personnes_HV.php" method="POST">
        DOYENNE sélectionnée :
        <select name="id_doyenne"><?= liste_doyennes("") ?></select>
     
        <select name="mon_choix">
            <option value="valeur1"> AVEC les Photos </option> 
            <option value="valeur2"> SANS les Photos </option>
        </select>
        <input type="submit" value=" Valider ce(s) choix " >
    </form>
    <?php if ( !empty($_POST['mon_choix']) ): ?>
    mon_choix : <?= $_POST['mon_choix'] ?>
    <?php endif; ?>
    (J'ai viré les td et tr qui étaient perdus dans l'espace.)

  4. #4
    Membre à l'essai
    Homme Profil pro
    Conseiller Technique
    Inscrit en
    Décembre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseiller Technique

    Informations forums :
    Inscription : Décembre 2018
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Il y a aussi la ligne 4 qui contient un <td></td> et </tr> mal placé ( je dirais même qu'ils n'ont rien à faire là ).


    Edit : Oups! CosmoKnacki m'a doublé...

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 468
    Points : 5 826
    Points
    5 826
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par CosmoKnacki Voir le message
    À ta place j'utiliserai les balises courtes <?= $variable ?> plutôt que <?php echo $variable; ?> ainsi que la syntaxe alternative des structures de contrôle if, for, foreach, etc.
    Effectivement, j'y avais pas pensé mais ça améliore la lisibilité (et les commentaires que j'avais pris l'habitude de rajouter, du style //fin de if (isset($name)), deviendraient moins nécessaires). Par contre, cet exemple qu'on trouve dans la doc pour la syntaxe alternative :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?phpif ($a == 5):
        echo "a égale 5";
        echo "...";
    elseif ($a == 6):
        echo "a égale 6";
        echo "!!!";
    else:
        echo "a ne vaut ni 5 ni 6";
    endif;
    ?>
    m'ayant surpris, je l'ai réécrit comme ça :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php if ($a == 5): ?>
        a égale 5
        ...
    <?php elseif ($a == 6): ?>
        a égale 6
        !!!
    <?php else: ?>
        a ne vaut ni 5 ni 6
    <?php endif; ?>
    et ça marche aussi. Et ça semble plus conforme au principe ; non ?

  6. #6
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 888
    Points : 6 632
    Points
    6 632
    Par défaut
    Citation Envoyé par laurentSc
    Par contre, cet exemple qu'on trouve dans la doc pour la syntaxe alternative :
    ...
    m'ayant surpris, je l'ai réécrit comme ça:
    Cette page de la documentation a juste pour but de présenter la syntaxe alternative des structures de contrôle, or on ne les utilise pas seulement pour faire de l'affichage en html (même si c'est dans ce contexte qu'elles sont utilisées la plupart du temps). C'est donc normal qu'elles soient présentées de cette manière avec des instructions simples comme echo dans un manuel, et ce, sans introduire d'autres notions, histoire d'embrouiller le moins de monde possible. Mais effectivement on peut très bien l'écrire comme tu l'as fait. Par contre gare aux espaces entre les echos successifs lors du passage d'une écriture à l'autre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php if (a == 5): ?>
    a égale 5...
    <?php elseif (a == 6): ?>
    a égale 6!!!
    <?php else: ?>
    a ne vaut ni 5 ni 6
    <?php endif; ?>
    (Il n'y a pas d'espace entre 5 et ... ni entre 6 et !!!.)

    Maintenant pour ce qui est de ce type de commentaires: //fin de if (isset($name)), que ce soit avec l'une ou l'autre syntaxe, ils ne devraient jamais être nécessaires, le repère pour savoir à qui appartient la fermeture d'un bloc de code c'est l'indentation.

    C'est sûr que la syntaxe alternative apporte un plus en précisant l'instruction qu'elle vient fermer, mais ça ne solutionne pas certains problèmes de fond: si un bloc de code devient tellement long qu'on en vient à utiliser ce genre de commentaire, c'est le signe qu'une partie du code du bloc en question doit être déporté dans une fonction ou une méthode, ou bien écrit d'une autre manière. Même topo lorsqu'on se retrouve avec trop de niveaux d'imbrication de blocs, c'est un signe, il faut agir!

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 468
    Points : 5 826
    Points
    5 826
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par CosmoKnacki Voir le message
    Si un bloc de code devient tellement long qu'on en vient à utiliser ce genre de commentaire, c'est le signe qu'une partie du code du bloc en question doit être déporté dans une fonction ou une méthode, ou bien écrit d'une autre manière. Même topo lorsqu'on se retrouve avec trop de niveaux d'imbrication de blocs, c'est un signe, il faut agir!
    Oui, t'as raison, et ça rejoint la maxime de rawsrc :"diviser pour mieux régner".

  8. #8
    Membre à l'essai
    Homme Profil pro
    Conseiller Technique
    Inscrit en
    Décembre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseiller Technique

    Informations forums :
    Inscription : Décembre 2018
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Mais alors dans ce cas il faudrait dans ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php if (a == 5): ?>
    a égale 5...
    <?php elseif (a == 6): ?>
    a égale 6!!!
    <?php else: ?>
    a ne vaut ni 5 ni 6
    <?php endif; ?>
    ... ajouter les balises html en rapport pour le referencement comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php if (a == 5): ?>
      <p>a égale 5...</p>
    <?php elseif (a == 6): ?>
      <p>a égale 6!!!</p>
    <?php else: ?>
      <p>a ne vaut ni 5 ni 6</p>
    <?php endif; ?>
    Je me trompe?

  9. #9
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 468
    Points : 5 826
    Points
    5 826
    Billets dans le blog
    1
    Par défaut
    Ca me paraît effectivement plus propre de rajouter une balise <p> mais quel rapport avec le référencement ?

  10. #10
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 888
    Points : 6 632
    Points
    6 632
    Par défaut
    Citation Envoyé par Zoki_Marciano
    ... ajouter les balises html en rapport pour le réferencement ...
    Ce n'est qu'un exemple: oui rien ne t'empêche de coller des balises la où tu le souhaites lorsque tu veux construire une page html, après ça dépend de la tête de ton document. Autre exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <p>Après m'être entretenu longuement au téléphone avec
    mon homologue soviétique,
    nous sommes parvenus à la conclusion que: 
        <strong>
            <?php if (a == 5): ?>
            a égale 5...
            <?php elseif (a == 6): ?>
            a égale 6!!!
            <?php else: ?>
            a ne vaut ni 5 ni 6
            <?php endif; ?>
        </strong>
    </p>

  11. #11
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 468
    Points : 5 826
    Points
    5 826
    Billets dans le blog
    1
    Par défaut
    C'est sûr que pour arriver à cette conclusion, il faut un long débat , mais pourquoi un homologue soviétique ?

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bon...

    Depuis le message #4, vous être Hors Sujet...

    Merci de penser à maub85, qui a posté la discussion.

  13. #13
    Membre régulier
    Homme Profil pro
    en retaite
    Inscrit en
    Mai 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : en retaite
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 164
    Points : 99
    Points
    99
    Par défaut
    Merci à vous tous.
    maub

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

Discussions similaires

  1. texte d'une option de select et &nbsp;
    Par postb99 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 03/08/2007, 11h25
  2. conserver l'etat des options de select multiple apres le submit
    Par raul_le_vieux dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 25/07/2007, 15h41
  3. html-el:option et selected="selected"
    Par mmschnef dans le forum Struts 1
    Réponses: 3
    Dernier message: 16/04/2007, 16h47
  4. IE : Option, attribut selected perdu ?
    Par Sergejack dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/08/2006, 15h37
  5. [Tableaux] Recuper toutes les options dans select
    Par Tempotpo dans le forum Langage
    Réponses: 6
    Dernier message: 13/04/2006, 14h26

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