Partage
  • Partager sur Facebook
  • Partager sur Twitter

modifier attribut value balise option dans liste

injecter valeur id de donnée SQL dans attribut value d'1 balise option

Sujet résolu
    15 septembre 2019 à 15:54:27

    Bonjour,

    je souhaite au chargement de ma page, récupérer, pour alimenter une liste déroulante, une liste de département enregistrée dans une table issue d'une BDD mysql (essai_liste_deroulante »Table: dept).

    La connection se fait correctement et récupére l'id et le nom du département.

    Ma requête est simple : récupérer la liste de tous les départements (avec leur id) classé dans l'ordre croissant je crois.

    dans ma table j'ai 2 champs : numDep (id clé primaire) et nomDep(le nom du département).

    Dans une boucle, Je renvoie pour l'affichage, les résultats sous forme d'une concaténation de string, reprenant la structure d'une liste déroulante avec SELECT ET OPTION etc.en y intercalant les valeurs numDep (pour alimenter l'attribut VALUE des balises OPTION) et nomDep (pour alimenter le contenu de la liste déroulante) dans la string.

    problème :

    Au clic sur la liste déroulante , l'on voit bien les noms des départements enregistrés mais des erreurs m'indiquent un problème :

    Notice: Undefined variable

    Après vérification, il s'avère que l'attribut VALUE n'est pas alimenté restant vide ("").

    Je pense que mon problème est lié à une histoire de guillemets devant s'intercaler dans ce morceau puisque la valeur de value est encadrée de guillemets habituellement.

    '<OPTION VALUE="'.$numDep.'">'.$nomDep.'</OPTION>';

    Mais là j'ai eu beau tenter de multiples essais-erreurs je n'ai pas résolu mon problème. Pouvez-vous m'aider ? Je vous joins mon fichier php et le sql

    numDep   nomDep

    1,      "vienne"
    2,    "deux- sèvres"
    3,      "charente"
    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="utf-8" />
        <script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
        
        <link rel="stylesheet" href="assets/css/extras.css" />
        <link rel="stylesheet" href="css/style.css" />
        <!-- <link rel="stylesheet" href="jquery-ui-1.12.1.custom/jquery-ui.css" /> -->
        <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
    </head>
    
    <body>
    
    <?php
    //
    try
    {
        $bdd=new PDO('mysql:host=localhost;dbname=essai_liste_deroulante;charset=utf8','root','',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    }
    
    catch (Exception $e)
    
    {
        die('Erreur : ' . $e->getMessage());
    }
    
    
    
    $reponse = $bdd->query('SELECT numDep, nomDep FROM dept ORDER BY numDep ASC');
    
    $ld="";
    $ld = "<SELECT name='categorie' id='categorie'>";
    $ld .= "<OPTION VALUE=0>Choisissez</OPTION>";
    
    while ($donnees = $reponse->fetch())
    {
        $mumDep = $donnees["numDep"];
        $nomDep = $donnees["nomDep"];
    
        $mumDep=strval($mumDep);
    
        echo ($mumDep);
    
         // c'est la partie qui cloche 
    $ld .= '<OPTION VALUE="'.$numDep.'">'.$nomDep.'</OPTION>';

         }

    $ld .= "</SELECT>";
    
    $reponse->closeCursor(); // Termine le traitement de la requête
    
     print $ld;
    
    ?>
    
    </body>
    
    </html>
    






    -
    Edité par DavidCerda 15 septembre 2019 à 16:03:21

    • Partager sur Facebook
    • Partager sur Twitter
      15 septembre 2019 à 16:46:06

      Salut,

      1) donnes nous le texte complet de l'erreur

      2) où est le form ?

      • Partager sur Facebook
      • Partager sur Twitter
        15 septembre 2019 à 17:04:51

        Bonjour Christouphe

        je n'ai pas créé de form pour le moment. J'ai une page vide et Php crée la liste déroulante. Je fais juste des tests pour réaliser une liste déroulante se chargeant dynamiquement en n'utilisant que php et mysql. Ensuite j'aimerais créer un form et passer par une requête JS AJAX PHP MYSQL mais mes connaissances sont encore lacunaires dans ce domaine. Je préfère repartir de zéro.

        Le reste viendra quand j'aurai compris mon erreur.

        voici la ligne concernée

        $ld .= '<OPTION VALUE="'.$numDep.'">'.$nomDep.'</OPTION>';

         En retirant $numDep ça marche très bien mais à l'affichage je vois value ="" pour les 3 nomDep de la liste.

        voici l'erreur : 

        -
        Edité par DavidCerda 15 septembre 2019 à 17:06:50

        • Partager sur Facebook
        • Partager sur Twitter
          15 septembre 2019 à 18:34:12

          rien dit, j'avais pas vu le debug

          -
          Edité par christouphe 15 septembre 2019 à 18:35:20

          • Partager sur Facebook
          • Partager sur Twitter
            16 septembre 2019 à 10:30:38

            Salut

            Le nom de ta variable n'est pas $numDep mais $mumDep ^^ 

            Sûrement une faute de frappe? 

            • Partager sur Facebook
            • Partager sur Twitter
              16 septembre 2019 à 10:34:43

              Ryukotsei a écrit:

              Salut

              Le nom de ta variable n'est pas $numDep mais $mumDep ^^ 

              Sûrement une faute de frappe? 


              Oh purée !!! je l'ai lu 5 fois ce p*** de code ;) Bien joué ;)
              • Partager sur Facebook
              • Partager sur Twitter
                16 septembre 2019 à 10:40:35

                christouphe a écrit:

                Ryukotsei a écrit:

                Salut

                Le nom de ta variable n'est pas $numDep mais $mumDep ^^ 

                Sûrement une faute de frappe? 


                Oh purée !!! je l'ai lu 5 fois ce p*** de code ;) Bien joué ;)


                J'ai un peu honte de l'avouer mais ça m'est arrivé il y a peu et j'ai cherché comme une abrutie pendant 20 minutes xD.
                • Partager sur Facebook
                • Partager sur Twitter
                  16 septembre 2019 à 10:49:10

                  aaaargh, Bonjour Ryukotsei,

                  merci pour ton acuité visuelle.

                  C'est fou comme des yeux neufs peuvent détecter très facilement les erreurs des autres.

                  J'ai corrigé, ça marche impeccable.

                  Merci à Christouphe également.

                  L'expérience rentre lentement...

                  • Partager sur Facebook
                  • Partager sur Twitter
                    16 septembre 2019 à 11:10:07

                    A ton service, 

                    ravie que mes yeux aient servi à quelque chose :p

                    • Partager sur Facebook
                    • Partager sur Twitter

                    modifier attribut value balise option dans liste

                    × 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