Variable dans menu déroulant php

leod Messages postés 98 Statut Membre -  
croy Messages postés 457 Statut Membre -
Bonjour a tous
ma question va vous sembler bête comme chou
mais impossible de trouver la réponse après des heures d'essai .....

voici la portion de code qui me pose problème :

$form2="
<center>
<table>
<form method=\"POST\">
<tr><td><b>Sous Catégorie : </b>
<select name=sscategorie>
<option selected value=\"0\">choisissez une sous catégorie</option>
$i=0;
while ($i<$nbscat)
{
$uid2= $categorie_tab2[$i]['uid'];
$nomdescat2= $categorie_tab2[$i]['nom'];
<option value=\"$uid2\">$nomdescat2</option>
$i=$i+1;
}
</select></td></tr>
<tr><td style=\"text-align:center;\"><input type=submit name=go2 value=\"Poster votre annonce\"></td></tr>
</form>
</table>
</center>
";

donc ma question est simple comment faire pour que la variable $nomdescat2 s'affiche dans le menu déroulant
j'ai essayé sans succés :

\"$nomdescat2\"
".$nomdescat2."
'$nomdescat2'
...

dites moi comment faire car la j'explose

merci d'avance
Configuration: Windows Vista
Firefox 2.0.0.12

3 réponses

  1. croy Messages postés 457 Statut Membre 114
     
    Bonjour

    A moins que tu ais une raison fondamentale de mettre ton code dans une variable php, je te recommanderais de faire un script comme ci-dessous :

    <center>
    <form method="POST">
    <table>
    <tr>
    <td><b>Sous Catégorie : </b>
    <select name=sscategorie>
    <option selected value="0">choisissez une sous catégorie</option>
    <?php
    $i=0;
    while( $i < $nbscat )
    {
    $uid2 = $categorie_tab2[$i]['uid'];
    $nomdescat2 = $categorie_tab2[$i]['nom'];
    echo '<option value="' . $uid2 . '">' . $nomdescat2 . '</option>';
    $i=$i+1;
    }
    ?>
    </select>
    </td>
    </tr>
    <tr>
    <td style="text-align:center;">
    <input type=submit name=go2 value="Poster votre annonce">
    </td>
    </tr>
    </table>
    </form>
    </center>

    Ceci me sembme plus orthodoxe.
    0
  2. leod Messages postés 98 Statut Membre 2
     
    oui effectivement c'est plus clair je l'accorde mais le reste de mon code m'oblige a essayer comme ceci
    car en essayant ton code (chose que j'avais deja essayé seul ca merde et je ne sais pas trop pourquoi

    ce qui va autour :

    ...

    if($ok==1)
    {
    require('connection/start.php');
    $requete5 = mysql_query("SELECT * FROM categorie where attachement=$categorieb ");
    $nbscat = mysql_affected_rows();
    $i=0;
    while ($donnees5 = mysql_fetch_array($requete5))
    {
    $categorie_tab2[$i]['nom']=$donnees3['nom'];
    $categorie_tab2[$i]['uid']=$donnees3['uid'];
    $i=$i+1;
    }
    require('connection/stop.php');
    ?>
    <center>
    <form method="POST">
    <table>
    <tr>
    <td><b>Sous Catégorie : </b>
    <select name=sscategorie>
    <option selected value="0">choisissez une sous catégorie</option>
    <?php
    $i=0;
    while( $i < $nbscat )
    {
    $uid2 = $categorie_tab2[$i]['uid'];
    $nomdescat2 = $categorie_tab2[$i]['nom'];
    echo '<option value="' . $uid2 . '">' . $nomdescat2 . '</option>';
    $i=$i+1;
    }
    ?>
    </select>
    </td>
    </tr>
    <tr>
    <td style="text-align:center;">
    <input type=submit name=go2 value="Poster votre annonce">
    </td>
    </tr>
    </table>
    </form>
    </center>
    <?php
    }

    ...

    voila si ca peu aider

    comme ceci les catégorie proposé sont blanche (rien ecrit)

    edit : je suis un boulet , mauvaise variable voir ce qui est surligné en gras ^^
    ben quoi je suis un peu fatiguer ^^

    en tout cas merci de tes reponses
    0
  3. croy Messages postés 457 Statut Membre 114
     
    J'écrirais plutôt la lecture de la base comme ça :

    require('connection/start.php');
    $requete5 = mysql_query(
    "SELECT * FROM categorie where attachement='"
    . $categorieb . "'")
    or die("le SELECT ne marche pas" );
    $nbscat = mysql_affected_rows();
    while ($donnees5 = mysql_fetch_array($requete5))
    {
    $categorie_tab2[] = array( 'nom' => $donnees3['nom'],
    'uid' => $donnees3['uid'] );
    }
    require('connection/stop.php');
    echo '<b>...'; var_dump( $categorie_tab2);

    1. ajouté des quotes autour de $categorieb après le = du SELECT : si ta colonne attachement est un string c'est indispensable
    2. ajouté un die pour vérifier que le query se déroule bien
    3. modifié l'initialisation du tableau $categorie_tab2 : je préfère ainsi
    4. ajouté un var_dump pour vérifier que le tableau est bien initialisé

    Qu'est-ce-que ça donne ?
    0