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 :

Menu déroulant dans tableau


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 44
    Par défaut Menu déroulant dans tableau
    Je débute en php et je bute... Voilà, j'ai un premier fichier avec un menu déroulant issu de Mysql, je choisis dans ma liste et je récupère les données dans un second fichier. Jusqu'ici pas de pb. Dans le second fichier, je récupère les données dans un tableau. Voici le 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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <form method="post" name="anim" action="">
    <?php
    require ('conf.php');
    //Fichier de réception du formulaire listecole.php
    $postecole = $_POST['ecole'];
     
    echo ("<b>Ecole</> : $postecole<br/><br>");
     
    $query = mysql_query("SELECT Nom, Prénom FROM jos_ecole_etat where ECOLE='$postecole' ORDER BY Nom") OR die("impossible");
     
    //Déclare fonction
    function menuanim() {
      $rqani = mysql_query("SELECT anim FROM jos_anim ORDER BY ID");
      echo ('<select name="anim">');
      if ($produit == "") {
        echo ('<option value="' . '">' . '< Choisir >' . '</option>');
      }
      else {
        echo ('<option value="' . '">' . '</option>');
      }
      while ($ligne1 = mysql_fetch_object($rqani)) {
     
        echo ('<option>' . $ligne1->anim . '</option>');
      }
      echo ('</select>');
     
    }
     
    //tableau des données récoltées
    echo "<table border='1' cellpadding='1' cellspacing='1' align='left'>
    				<td><b>Nom</b></td>
    				<td><b>Prénom</b></td>
                                    <td><b>Animation 1</b></td>
                                    </tr>";
     
    	while ($row=mysql_fetch_array($query))
     
    {
     
    echo "<tr>
    <td>$row[Nom]</td>
    <td>$row[Prénom]</td>
    <td>$anim</td>
    <tr>";}
    echo "</table>";
     
    ?>
    </form>
    Mon tableau me donne bien les Noms et les Prénoms mais je voudrais intégrer dans chaque ligne, à la 3ème colonne, un menu déroulant généré par ma fonction. Ma fonction fonctionne, si j'écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $menuanim='menuanim';
    $menuanim();
    J'obtiens bien mon menu déroulant mais impossible de trouver comment le placer dans le tableau!!
    Chaque ligne de mon tableau final devrait comporter le Nom, le Prénom et un menu déroulant (que j'ai appelé $anim dans la table) pour envoyer les choix de chacun dans un nouveau formulaire. Je ne sais pas si je suis très clair...
    Votre aide m'aidera à progresser.

  2. #2
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Si j'ai bien compris voici ce que tu as fait
    while ($row=mysql_fetch_array($query)){

    echo "<tr>
    <td>$row[Nom]</td>
    <td>$row[Prénom]</td>
    <td>$anim</td>
    <tr>";
    }
    echo "</table>";
    Voici ce que tu dois faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    while ($row=mysql_fetch_array($query)){
     
    echo "<tr>
    <td>$row[Nom]</td>
    <td>$row[Prénom]</td>
    <td>";
    menuanim();
    echo "</td>
    <tr>";
    }
    echo "</table>";

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 144
    Par défaut
    Bonjour,

    je n'ai que survolé votre code mais déjà quelques remarques :
    - votre fonction menuanim lance la requête et n'affiche qu'un seul résultat. Comme c'est une fonction, à moins que vous n'ayez défini des variables locales, vos variables sont spécifiques à la fonction (autrement dit les valeurs sont indépendantes des autres valeurs ailleurs dans le programme)
    Prévoyez une boucle à la place de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $rqani = mysql_query("SELECT anim, ID FROM jos_anim ORDER BY ID");
    echo "<select name=\"id_anim\">
      <option value=\"\">< Choisir ></option>
    ";
    while (list($anim, $id_anim) = mysql_fetch_row($rqani)) {  //c'est bien de passer par les objets, mais avec un ou 2 résultats, simplifiez-vous le code
      echo ("<option value=\"$id_anim\">$anim</option>\r\n";
    }
    echo ('</select>');
    Ensuite, mais ce n'est qu'un conseil, évitez les accents dans le nom des champs ou des tables mysql (même si ça marche...), et évitez de mélanger les minuscules et les majuscules.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 144
    Par défaut
    Rebonjour,
    Je vois la réponse de Riete, qui me montre que nous sommes plusieurs à ne pas bien saisir ce que vous souhaitez obtenir.

    Je comprends votre tableau, avec le nom, prénom, et choix sélect.

    Ma question : est-ce que le choix sélect est EXACTEMENT le même pour toutes les cases ? Si oui, il ne faut pas lancer la requête autant de fois que vous avez de cases, mais une seule fois, et ensuite vous copiez...

    Si vous pouvez donner plus de détails, merci

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 44
    Par défaut
    Tout d'abord merci pour vos réponses, je vais essayer d'être plus clair :
    Je voudrais que s'affiche un tableau dans lequel chaque ligne aurait :

    Nom reçu par _Post Prénom reçu par _Post le menu déroulant, le même à chaque ligne, pour pouvoir faire un choix pour chaque Nom.

    J'ai modifié selon 'riete' mais mon menu s'affiche au dessus du tableau.

    Je viens de supprimer la fonction et la remplacer par une boucle selon 'papa6' mais faut que je regarde mieux, j'obtiens "Parse error: syntax error, unexpected ';' in E:\xampp\htdocs\Essais PHP\Joomla ecole\Document2.php on line 17".

    Pour les accents, le pire c'est que je le sais et je vais modifier le tout dans mes bases ainsi que les majuscules minuscules. Le tout en majuscule m'évitera les accents!

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 144
    Par défaut rajout identifiant individu
    En effet, mon code mélangeait les echos avec des parenthèses et des guillemets, alors que seuls les guillemets ou apostrophes qui remplissent ce rôle sont utiles...

    J'en profite pour rajouter dans le choix select un identifiant de l'individu afin que l'on sache qui a été modifié.

    Code d'extraction des anims, à n'appliquer qu'une seule fois pour toutes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $rqani = mysql_query("SELECT anim, ID FROM jos_anim ORDER BY ID");
    Recherche de l'identifiant de l'individu également
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = mysql_query("SELECT Nom, Prénom, ID_bonhomme FROM jos_ecole_etat where ECOLE='$postecole' ORDER BY Nom") OR die("Erreur sur la requ&ecirc;te xxx : " . mysql_error());
    Puis dans chaque case du tableau
    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
    echo "<select name=\"id_anim[$row[ID_bonhomme]]\">
      <option value=\"\">< Choisir ></option>
    ";
    if( ! isset($tab_maliste)) {
      // Premier passage
      while (list($anim, $id_anim) = mysql_fetch_row($rqani)) {  // toujours pas besoin de se compliquer avec mysql_fetch_array, fetch_assoc, etc. fetch_row suffit
        $tab_maliste[$id_anim] = $anim;
        echo "<option value=\"$id_anim\">$anim</option>\r\n";
      }
    } else {
      foreach($tab_maliste as $cle => $val) {
        echo "<option value=\"$cle\">$val</option>\r\n";
      }
    }
    echo '</select>';

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 44
    Par défaut des menus, pas de contenu
    Bien, je sens que ça avance, enfin plus vous que moi quoique j'en ai beaucoup appris aujourd'hui. Bien, je joins mon nouveau script qui me donne bien dans chaque case un menu déroulant mais pas de contenu.... mes requêtes ne sont pas déclarées au bon endroit ? des accolades qui manquent ?
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    <form method="post" name="anim" action="">
    <?php
    require ('conf.php');
    //Fichier de réception du formulaire listecole.php
    $postecole = $_POST['ecole'];
    echo ("<b>Ecole</> : $postecole<br/><br>");
     
    $query = mysql_query("SELECT Nom, Prénom, id_nom FROM jos_ecole_etat where ECOLE='$postecole' ORDER BY Nom") OR die("impossible");
    $rqani = mysql_query("SELECT anim, id_anim FROM jos_anim ORDER BY ID");
     
    //tableau des données récoltées
     
    echo "<table border='1' cellpadding='1' cellspacing='1' align='left'>
    				<td><b>Nom</b></td>
    				<td><b>Prénom</b></td>
                    <td><b>Animation 1</b></td>
                    </tr>";
     
     
    while ($row=mysql_fetch_array($query))
     
    {
    echo "<tr>";
    echo "<td>";
    echo "<select name=\"id_anim[$row[id_nom]]\"><option value=\"\">< Choisir ></option>";
    if( ! isset($tab_maliste)) {
      // Premier passage
      while (list($anim, $id_anim) = mysql_fetch_row($rqani)) {  // toujours pas besoin de se compliquer avec mysql_fetch_array, fetch_assoc, etc. fetch_row suffit
        $tab_maliste[$id_anim] = $anim;
        echo "<option value=\"$id_anim\">$anim</option>\r\n";
      }
    } else {
      foreach($tab_maliste as $cle => $val) {
        echo "<option value=\"$cle\">$val</option>\r\n";
      }
    }
    echo "'</select>';</td>";
     
    echo "<td>";
    echo "<select name=\"id_anim[$row[id_nom]]\"><option value=\"\">< Choisir ></option>";
    if( ! isset($tab_maliste)) {
      // Premier passage
      while (list($anim, $id_anim) = mysql_fetch_row($rqani)) {  // toujours pas besoin de se compliquer avec mysql_fetch_array, fetch_assoc, etc. fetch_row suffit
        $tab_maliste[$id_anim] = $anim;
        echo "<option value=\"$id_anim\">$anim</option>\r\n";
      }
    } else {
      foreach($tab_maliste as $cle => $val) {
        echo "<option value=\"$cle\">$val</option>\r\n";
      }
    }
     
    echo "'</select>';</td>";
     
    echo "<td>";
    echo "<select name=\"id_anim[$row[id_nom]]\"><option value=\"\">< Choisir ></option>";
    if( ! isset($tab_maliste)) {
      // Premier passage
      while (list($anim, $id_anim) = mysql_fetch_row($rqani)) {  // toujours pas besoin de se compliquer avec mysql_fetch_array, fetch_assoc, etc. fetch_row suffit
        $tab_maliste[$id_anim] = $anim;
        echo "<option value=\"$id_anim\">$anim</option>\r\n";
      }
    } else {
      foreach($tab_maliste as $cle => $val) {
        echo "<option value=\"$cle\">$val</option>\r\n";
      }
    }
     echo "'</select>';</td>
    <tr>";
    }
    echo "</table>";
     
    ?>
    </form>
    Heureusement que j'ai 1 mois et demi pour préparer tout ça.

  8. #8
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Je ne vois pas d'erreur à priori, je ne peux pas exécuter le code car je n'ai pas le DB.
    Enfin pour t'aider ce que je peux dire c'est qu'il te faut faire un echo de ta variable $tab_maliste avant de créer ton menu select. On moins tu es sur qu'il y a quelque chose à mettre dans ton menu
    Prenons ton 3eme <td>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    echo "<td>";
    if( ! isset($tab_maliste)) {
      // Premier passage
      while (list($anim, $id_anim) = mysql_fetch_row($rqani)) {  // toujours pas besoin de se compliquer avec mysql_fetch_array, fetch_assoc, etc. fetch_row suffit
        $tab_maliste[$id_anim] = $anim;
        echo $id_anim"-"$anim."<br>";
      }
    } else {
      foreach($tab_maliste as $cle => $val) {
        echo $cle."-".$val<br>";
      }
    }
     echo "</td>";
    Ah, oui. Il me semble aussi voir une erreur de syntax.
    Ce code me semble faux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "'</select>';</td>
    <tr>";
    Je verrais plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "</select></td>
    <tr>";
    A+

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 44
    Par défaut
    si je modifie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $id_anim"-"$anim."<br>";
    , jobtiens ce message d'erreur :
    syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';'

  10. #10
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Citation Envoyé par Iratec Voir le message
    si je modifie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $id_anim"-"$anim."<br>";
    , jobtiens ce message d'erreur :
    syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';'
    Bonjour,

    Il manque le caractère de concaténation '.' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $id_anim."-".$anim."<br>";

  11. #11
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Ooooops autant pour moi je plaide compable.
    Un fois ceci modifié, ça devrait fonctionner. Tiens moi au jus.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 44
    Par défaut
    J'ai modifié selon les conseils de 'riete' et j'obtiens le code suivant.
    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
    <form method="post" name="id_anim" action="">
    <?php
    require ('conf.php');
    //Fichier de réception du formulaire listecole.php
    $postecole = $_POST['ecole'];
    echo ("<b>Ecole</> : $postecole<br/><br>");
     
    $query = mysql_query("SELECT Nom, Prénom, id_nom FROM jos_ecole_etat where ECOLE='$postecole' ORDER BY Nom") OR die("impossible");
    $rqani = mysql_query("SELECT anim, id_anim FROM jos_anim ORDER BY ID");
     
    //tableau des données récoltées
     
    echo "<table border='1' cellpadding='1' cellspacing='1' align='left'>
    				<td><b>Nom</b></td>
    				<td><b>Prénom</b></td>
                    <td><b>Animation 1</b></td>
                    </tr>";
     
    while ($row=mysql_fetch_array($query))
     
    {
    echo "<tr>";
    echo "<td><b>$row[Nom]</b></td>";
     
    echo "<td><b>$row[Prénom]</b></td>";
     
    echo "<td>";
    echo "<select name=\"id_anim[$row[id_nom]]\"><option value=\"\">< Choisir ></option>";
    if( ! isset($tab_maliste)) {
      // Premier passage
      while (list($anim, $id_anim) = mysql_fetch_row($rqani)) {  // toujours pas besoin de se compliquer avec mysql_fetch_array, fetch_assoc, etc. fetch_row suffit
        $tab_maliste[$id_anim] = $anim;
        echo $id_anim."-".$anim."<br>";
      }
    } else {
      foreach($tab_maliste as $cle => $val) {
        echo $cle."-".$val."<br>";
      }
    }
     
    echo "'</select>'</td><tr>";
    }
    echo "</table>";
    ?>
    </form>
    Quand je lance mon formulaire listecole.php, je choisis l'école, mon script se lance , je reçois les Noms, Prénoms dans les 2 premières colonnes. Dans la troisième, progrès, la liste déoulante s'affiche bien sur chaque ligne mais elle est vide.

  13. #13
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Es tu certain que ton tableau $tab_maliste contient quelque chose ou que ta requête retourne quelque chose ?
    fait unau milieu de ta boucle pour vérifier, sans afficher "echo "<select name=\"id_anim[$row[id_nom]]...".
    Ceci mettra peut être en évidence un autre problème que tu ne soupçonne pas.

    Si tu n'aboutis pas de cette façon, essaye d'extraire le bout de code qui pose problème dans un autre script, plus lisible et décortique le avec des echo bien placés.

    S'est un conseil de vieux renard

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 44
    Par défaut
    Bien, j'ai testé ce bout de code seul
    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
    <?php
    require ('conf.php');
    $rqani=mysql_query("SELECT id_anim, anim FROM jos_anim")OR die("impossible");
     
    if( ! isset($tab_maliste)) {
     
      while (list($id_anim, $anim) = mysql_fetch_row($rqani)) {
        $tab_maliste[$id_anim] = $anim;
        echo $id_anim."-".$anim."<br>";
         }
    } else {
      foreach($tab_maliste as $cle => $val) {
        echo $cle."-".$val."<br>";
        print_r($tab_maliste);  }
    }
    ?>
    J'obtiens l'affichage de la colonne "id_anim" mais pas le contenu de la colonne "anim". De plus cet affichage est généré par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $id_anim."-".$anim."<br>";
    qui se trouve après "while". A partir de "else", ça semble ne pas fonctionner

  15. #15
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 144
    Par défaut
    Bonjour à vous,
    et excusez-moi pour ces quelques jours sans réponse, mais j'étais empêché...

    Iratec, tu peux essayer les conseils de riete pour débogguer, c'est-à-dire isoler des parties de code au fur et à mesure, pour localiser les erreurs.

    Un autre conseil est de vérifier le résultat de tes requêtes avec phpmyadmin (par ex.).

    Ainsi, tu peux écrire temporairement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $TxtReq = "SELECT id_anim, anim FROM jos_anim";
    echo "<br />Ma requete : $TxtReq";  // sans prêter attention aux problèmes d'headers éventuels
    $rqani=mysql_query($TxtReq)OR die("Requ&egrave;te $TxtReq impossible : " . mysql_error());
    Puis tu fais un copié-collé sous phpmyadmin, qui te permet de constater si ton champ amin a du contenu ou s'il est vide...

    Sors aussi le print_r de ta boucle foreach :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    } else {
      print_r($tab_maliste);
      foreach($tab_maliste as $cle => $val) {
        echo $cle."-".$val."<br>";
      }
    }
    Tiens-nous au courant de ton avancement,
    bye

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 44
    Par défaut
    Primo, j'avais du effacer le contenu du champ anim, je l'ai remis et maintenant le print_r m'affiche tout le contenu. Donc j'ai du contenu. C'est un premier pas. Il ne me reste plus qu'à comprendre pourquoi il refuse de me l'afficher dans la liste déroulante. Je vais regarder du côté du select name et de la boucle. Je vous tiens au courant.

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 44
    Par défaut
    Bloqué d'un côté, on cherche de l'autre... Avec ce 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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <form method="post" name="id_anim" action="">
     
    <?php
    require ('conf.php');
    //Fichier de réception du formulaire listecole.php
    $postecole = $_POST['ecole'];
    echo ("<b>Ecole</> : $postecole<br/><br>");
     
    //J'en profite pour rajouter dans le choix select un identifiant de l'individu afin que l'on sache qui a été modifié. Code d'extraction des anims, à n'appliquer qu'une seule fois pour toutes
     
     
    $query = mysql_query("SELECT Nom, Prénom, id_nom FROM jos_ecole_etat where ECOLE='$postecole' ORDER BY Nom") OR die("impossible");
    $rqani = mysql_query("SELECT anim, id_anim FROM jos_anim ORDER BY id_anim") OR die("impossible");
     
    //tableau des données récoltées
     
    echo "<table border='1' cellpadding='1' cellspacing='1' align='left'>
    				<td><b>Nom</b></td>
    				<td><b>Prénom</b></td>
                    <td><b>Animation 1</b></td>
                    </tr>";
     
     
    while ($row=mysql_fetch_array($query))
     
    {
    echo "<tr>";
    echo "<td><b>$row[Nom]</b></td>";
     
    echo "<td><b>$row[Prénom]</b></td>";
     
    echo "<td>";
     
     
    echo('<select name="anim">');
         if($produit==""){
         echo('<option value="'.'">'.'< Choisir >'.'</option>');
         }
         else
         {
         echo('<option value="'.'">'.'</option>');}
         while ($ligne1=mysql_fetch_object($rqani)){
             echo('<option>'.$ligne1->anim.'</option>'); }
             //echo('</select>');
     
    echo "'</select>'</td><tr>";
    }
    echo "</table>";
    ?>
    </form>
    J'obtiens Les noms en première colonne, les prénoms dans la seconde et le menu déroulant complet dans la troisième colonne, première ligne. pour les autres lignes, dans la troisième colonne je n'ai que le menu déroulant avec "choisir" mais pas de choix. On se rapproche... Pour les propositions de riete et de papa6, je planche encore mais qui sait en croisant les deux approches...

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 44
    Par défaut Affichage résolu
    Quand on débute, on manque parfois de rigueur....
    Je suis retourné voir le code qu'avait proposé papa6 et j'ai remarqué que j'avais modifié.... ID_bonhomme en id_nom qui existe dans ma base jos_ecole. J'ai remis id_bonhomme et les menus s'affichent dans chaque ligne. Voici le 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
    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
    <form method="post" name="id_anim" action="">
     
    <?php
    require ('conf.php');
    //Fichier de réception du formulaire listecole.php
    $postecole = $_POST['ecole'];
    echo ("<b>Ecole</> : $postecole<br/><br>");
     
    //J'en profite pour rajouter dans le choix select un identifiant de l'individu afin que l'on sache qui a été modifié. Code d'extraction des anims, à n'appliquer qu'une seule fois pour toutes
     
     
    $query = mysql_query("SELECT Nom, Prénom, id_nom FROM jos_ecole_etat where ECOLE='$postecole' ORDER BY Nom") OR die("impossible");
    $rqani = mysql_query("SELECT anim, id_anim FROM jos_anim ORDER BY id_anim") OR die("impossible");
     
    //tableau des données récoltées
     
    echo "<table border='1' cellpadding='1' cellspacing='1' align='left'>
    				<td><b>Nom</b></td>
    				<td><b>Prénom</b></td>
                    <td><b>Animation 1</b></td>
                    </tr>";
     
    //Puis dans chaque case du tableau
    while ($row=mysql_fetch_array($query))
     
    {
    echo "<tr>";
    echo "<td><b>$row[Nom]</b></td>";
     
    echo "<td><b>$row[Prénom]</b></td>";
     
    echo "<td>";
     
     
    echo "<select name=\"id_anim[$row[ID_bonhomme]]\">
      <option value=\"\">< Choisir ></option>
    ";
    if( ! isset($tab_maliste)) {
      // Premier passage
      while (list($anim, $id_anim) = mysql_fetch_row($rqani)) {  // toujours pas besoin de se compliquer avec mysql_fetch_array, fetch_assoc, etc. fetch_row suffit
        $tab_maliste[$id_anim] = $anim;
        echo "<option value=\"$id_anim\">$anim</option>\r\n";
      }
    } else {
      foreach($tab_maliste as $cle => $val) {
        echo "<option value=\"$cle\">$val</option>\r\n";
      }
    }
    echo "'</select>'</td><tr>";
    }
    echo "</table>";
    ?>
    </form>
    Reste un petit truc, à côté de chacun de mes menus, j'ai le signe ' qui s'affiche. Bon et bien maintenant il ne me reste plus qu'à continuer....
    Merci à riete et papa6

  19. #19
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 144
    Par défaut
    Bonjour,
    et tant mieux si ça avance...

    Pour l'apostrophe (en fait, il devait y en avoir 2, un autre caché au niveau du dernier choix de la liste déroulante) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "</select></td><tr>";
    Au passage, tu peux utiliser les allers à la ligne inclus dans les guillemets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "</select></td>
      <tr>
    ";

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

Discussions similaires

  1. bouton avec menu déroulant dans la tool bar.
    Par archerhawke dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 27/10/2009, 19h50
  2. Menu déroulant dans un tableau
    Par alucard02 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 30/07/2009, 14h27
  3. menu déroulant dans un tableau
    Par logiciel_const dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 22/07/2008, 13h10
  4. Menu déroulant dans un formulaire
    Par basto dans le forum IHM
    Réponses: 1
    Dernier message: 15/03/2007, 15h21
  5. [XSLT][>(X)HTML/JS] Menu déroulant dans XSL
    Par tomy29 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 04/01/2007, 11h17

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