Partage
  • Partager sur Facebook
  • Partager sur Twitter

Garder en mémoire apres le POST d'un <select>

    5 avril 2020 à 15:42:15

    Salut tout le monde,

    Je cherche à savoir quel est le moyen d'afficher la valeur choisi par l'utlisateur apres un POST sur un <select>

    <select class="form-control" name="taille">
    <option value="" selected="">Quel secteur ?</option>
    <option value="5">5</option>
    <option value="10">10</option>
    <option value="20">20</option>
    <option value="30">30</option> <option value="500">500</option> </select>

    Faut il faire un array avec les valeur et ensuite vérifier la valeur ou just sous principe de de contion ?

    Bien le merci



    • Partager sur Facebook
    • Partager sur Twitter
      5 avril 2020 à 16:17:33

      > Faut il faire un array avec les valeur et ensuite vérifier la valeur

      Ce n'est absolument pas une obligation mais passer par un tableau PHP comme je te l'avais précédemment montré permet de ne pas se répéter, d'avoir un code plus court/concis et de pouvoir plus facilement le faire évoluer. Il suffit de comparer ton code à celui que je t'ai proposé, je pense que c'est évident, ça saute aux yeux comme le nez au milieu de la figure.

      Tu rajoutes une constante pour définir tes valeurs, ça te permet même de centraliser proprement le tout via un script de configuration dédié.

      Il faut aussi se dire que passer par un tableau (et plus largement quelque chose qui est itérable) est idiomatique (démarche qui n'a rien de propre à PHP, c'est transposable à n'importe quel langage et même en algo pure, on pourrait très bien adopter une approche similaire) : tes données proviendraient d'une base de données, un fichier au format quelconque, tu itérerais sur un intervalle de date (via DatePeriod), etc que l'idée resterait strictement la même.

      C'est une bonne pratique pour coder proprement. Si tu ne la comprends vraiment pas, n'est vraiment pas à l'aise avec le concept, ce n'est pas non plus la peine de te "forcer" à l'utiliser : fais au mieux avec tes propres connaissances. C'est déjà une bonne chose de savoir et avoir conscience que le même code pourrait être écrit autrement ainsi que potentiellement remettre en cause ses propres pratiques (c'est ainsi que l'on progresse).

      En espérant que c'était bien là que tu voulais en venir.

      -
      Edité par julp 5 avril 2020 à 16:34:31

      • Partager sur Facebook
      • Partager sur Twitter
        6 avril 2020 à 11:24:05

        Alors j'ai fait sous sytème d'array associatif ce que je préfére c'est plus clair pour moi, c'est fonctionnel est ce le top ca c'est une histoire mais voilà:

         <div class="form-group">
                                            <label>Zone kilomètrique</label>
                                            <?php
                                            $zone = ['5 km' => 5, '10 km' => 10, '20 km' => 20, '30 km' => 30, 'Livraison partout en France' => 1500];
                                            echo '<select class="form-control" name="zone_kilometrique"><option value="" selected="">Zone kilomètrique</option>';
                                            foreach($zone as $clef => $valeur){
                                              echo '<option value="'.$valeur.'"';
                                              if ( isset ($_POST['zone_kilometrique']) && $valeur == $_POST['zone_kilometrique'] ) {
                                                echo ' selected';
                                              }
                                              echo ">$clef</option>\n";
                                            }
                                            echo "</select>";
                                            ?>
                                     </div>



        • Partager sur Facebook
        • Partager sur Twitter
          6 avril 2020 à 11:50:37

          C'est une très bonne chose si tu t'es approprié l'idée et l'a faite évoluer.

          Avec une ternaire c'est moins lisible mais plus concis.

          Pense aussi à mettre des htmlspecialchars sur les valeurs que tu echo. Avec ces "valeurs", ce n'est pas vraiment nécessaire mais si tu reprenais ce même code pour autre chose voire en faisait une fonction, ça pourrait l'être, aussi bien pour la sécurité (XSS) que pour ne pas, en value, qu'un potentiel " ne devienne problématique.

          -
          Edité par julp 6 avril 2020 à 13:44:39

          • Partager sur Facebook
          • Partager sur Twitter
            6 avril 2020 à 12:10:42

            après ma colonne est un CHAR si je dis pas de conneries c'est 2 chiffres uniquement

            Mais effectivement une petite ptotection de plus en htmlspecialchars, oui le code est de moi, le ternaire me met mal à l'aise trop condensé pour moi

            • Partager sur Facebook
            • Partager sur Twitter

            Garder en mémoire apres le POST d'un <select>

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown