Menu déroulant dynamique mysql

Menu déroulant dynamique mysql - PHP - Programmation

Marsh Posté le 09-05-2005 à 20:54:32    

Bonjour !
 
Alors mon but: réaliser un menu déroulant dynamique avec corespondance avec ma base de données, et récupérer ma valeur sélectionnée en vue d'une utilisation future.
Etant newb en la matière j'ai essayé de pondre quelque chose, et j'attend vos commentaires  :jap:  
 
Mon code :
 
 

Code :
  1. echo "<td>Choix de la forme</td>";
  2. echo "<td><select size=\"1\" name=\"forme_choisie\"></td>";
  3. //listing dynamik
  4. $res3 = mysql_db_query("$dbName", "SELECT * FROM `formes` WHERE `ID` != 0 ORDER BY `ID`", $dbConn);
  5. while($tab_result=mysql_fetch_array($res3)){
  6. $id = $tab_result["ID"];
  7. $nom_forme = $tab_result["nom_forme"];
  8. $categorie = $tab_result["categorie "];
  9. ?>
  10. <option> <? if ($forme_choisie=="$nom_forme" ) {"selected";} ?> value= "<? "$nom_forme"?>"  <? "$nom_forme" ?>  </option>";
  11. <?php
  12. echo "</select>";
  13. }
  14. ?>


 
Et voilà ce que celà me donne:
http://www.sebastien-fritz.com/ace2097/4web/menu_dyna.JPG
 
Bref, je dois avoir un petit problème au niveau de ma syntaxe, ou peut être rien compris du tout! ;)
Des idées?

Reply

Marsh Posté le 09-05-2005 à 20:54:32   

Reply

Marsh Posté le 09-05-2005 à 21:13:32    

Un petit conseil : vue la taille de ton script, tu peux te permettre de virer les <?php ?> car c'est un peu lourd...  
 
Sinon, je te met sur la voie :  

Code :
  1. <form action="" method="post" id="style">
  2.     <p><label for="styles">Choisir un style :</label>
  3.     <select id="styles" name="style">
  4.      <option value="rouge">rouge</option>
  5.      <option value="rien">rien</option>
  6.      <option value="rose">rose</option>
  7.      <option value="noir" selected="selected">noir</option>
  8.      <option value="test">test</option>
  9.      <option value="foot">foot</option>
  10.     </select>
  11.     <input type="submit" value="Ok" />
  12.    </p></form>


C'est un exemple d'un menu déroulant. Compare avec la sortie de ta boucle et regarde ce qui cloche.
Si vraiment tu trouves pas, la réponse demain soir :p


---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
Reply

Marsh Posté le 09-05-2005 à 21:17:26    

ET un autre morceau de code qui a servit à faire le menu de dessus :

Code :
  1. print     "\t\t\t\t<form action=\"".$SERVER[REQUEST_URI]."\" method=\"post\" id=\"style\">\n"
  2.     ."\t\t\t\t\t<p><label for=\"styles\">Choisir un style :</label>\n"
  3.     ."\t\t\t\t\t<select id=\"styles\" name=\"style\">\n";
  4. $dossier = opendir("./style/" );
  5. while($enCours = readdir($dossier)){
  6.   if ($enCours[0] != "." && $enCours[0] != ".." && !is_dir($enCours) ) {
  7.     $enCours = substr_replace($enCours,'',-4);
  8.     print "\t\t\t\t\t\t<option value=\"".$enCours."\"";
  9.     if ($fstyle == $enCours) {
  10.         print " selected=\"selected\"";
  11.     }
  12.     print ">".$enCours."</option>\n";
  13.     }
  14.   }
  15. closedir($dossier);
  16. print "\t\t\t\t\t</select>\n"
  17.      ."\t\t\t\t\t<input type=\"submit\" value=\"Ok\" />\n"
  18.      ."\t\t\t\t</p></form>\n";


 
P.S : Je te donne pas la réponse toute faite, même si cela était plus simple... Car au moins, tu comprendras mieux quand tu auras trouvé tout seul :D
 
EDIT : quelqu'un aurait une astuce pour indenter la sortie, pour éviter de me taper \t ?


Message édité par yoyo354 le 09-05-2005 à 21:25:59

---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
Reply

Marsh Posté le 10-05-2005 à 00:43:35    

yoyo354 a écrit :

[...]
EDIT : quelqu'un aurait une astuce pour indenter la sortie, pour éviter de me taper \t ?


 
Te creer ta propre fonction "autoIndent" ?
C'est une idee qui me trote dans la tete depuis un petit moment.
Perso j'utilise des templates, donc dans mon cas, je peux recuperer "toute" la page sous forme d'une string, donc dans mon cas, je peux "simplement" l'indenter.
 
Dans ton cas ou tu print du code au fur et a mesure, je ne sais pas trop comment tu pourrais faire (simplement je parle :p).
A la limite, tu te crees une fonction qui prends 2 parametres.
1) Le nombre de tabs a metre devant
2) Le texte a afficher apres les tabs
:D

Reply

Marsh Posté le 10-05-2005 à 08:41:53    

euh merci yoyo354, je vais essayer ;)

Reply

Marsh Posté le 10-05-2005 à 11:24:51    

ok, alors j'ai peu etre trouvé une solution :
 

Code :
  1. $res3 = mysql_db_query("$dbName", "SELECT * FROM `formes` WHERE `ID` != 0 ORDER BY `categorie`", $dbConn);
  2. echo"<b>Choisissez une forme</b>\n";
  3. echo"<br><br>";
  4. echo "<form action='dlforme.php' method='post'><select name='forme'>\n";
  5. while ($tab_result=mysql_fetch_array($res3))
  6. {
  7. $id = $tab_result["ID"];
  8. $forme = $tab_result["nom_forme"];
  9. $categorie = $tab_result["categorie "];
  10. extract($tab_result);
  11. echo "<option value='$forme'>$forme\n";
  12. }
  13. echo " </select>\n";
  14. echo " <BR><BR><BR><BR>";
  15. echo "<input type='submit'"."value='Validez votre choix'></form>\n";


 
Ca marche pas trop mal  :bounce:  
J'ai bon les amis?  :)

Reply

Marsh Posté le 10-05-2005 à 14:27:12    

Question supplémentaire, maintenant que j'ai trouvé une solution à mon problème : euh pour exporter mon choix à travers une autre page, mon code a pas l'air de fonctionner pour interpreter le <form action='dlforme.php' method='post'>
des idées?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed