pb PHP + formulaire HTML

pb PHP + formulaire HTML - Programmation

Marsh Posté le 17-11-2001 à 17:20:20    

bonjour mon problème c que dans un formulaire j'ai 1 liste de choix (select) et je veux que les choix de cette liste proviennent de ma base de données.
Il n'y a pas d'erreurs dans le code car la page se lance bien, mais il n'apparait rien dans ma liste !!
voici mon code :
 
<TD>Votre catégorie :</TD>
<TD><SELECT name="categorie">
   <?php
   $requet = "select LibCat from categoriepers";
   $result = mysql_query($requet);
 
   while($cat = mysql_fetch_row($result)){
   $LibCat = $cat[0];
   ?><OPTION NAME='<?php $cat[1] ?>'> <?php $cat[0] ?></OPTION>;
   <?php
   }   ?>
</TD>
 
Je sais que ca ne va pas du tout (ca se voit d'ailleur!!). J'ai essaye de faire : echo "<OPTION NAME=.....";   mais ca faisait pareil alors si quelqu'un aurait une idée merci de me la soumettre.

Reply

Marsh Posté le 17-11-2001 à 17:20:20   

Reply

Marsh Posté le 17-11-2001 à 17:54:50    

comment se fait-il que ton tableau $cat ait 2 dimensions alors que ta requête ne porte que sur 1 seul champ LibCat ???
D'ailleur, ta requête est-elle correcte et te donne-t-elle un résultat ? (les majuscules sont importantes)

Reply

Marsh Posté le 17-11-2001 à 18:08:16    

2 dimension??
 
excuse moi mais je suis novice alors je me contente de reprendre ce que je trouve sur les sites de PHP. je pensais que $cat[0] contiendrait à l'indice 0 du tableau la valeur voulu et que $cat[1]contiendrait une valeur à l'indice 1 ! je ne pensait pas que ca faisait 2 dimensions! dans ce cas ce serait sympa de m'expliquer un peu cette histoire!
 
sinon ma requete fonctionne bien je l'ai testé directement dans mysql et elle renvoie exactement ce qu'il faut.

Reply

Marsh Posté le 17-11-2001 à 20:34:19    

allez s'il vous plait. c hyper important j'y arrive pas du tout!! ca fait plusieurs heures que je me galère alors que g pas bocoup de temps devant moi ! :sweat:
 
peut etre que ct pas très clair. je sais comment récupérer des données venant d'un formulaire, mais je voudrais faire le contraire : mettre des données provenant de ma base dans un formulaire.  
 
plizzzzzzz

Reply

Marsh Posté le 17-11-2001 à 21:10:07    

je me suis mal exprimé  :ange:  
ton tableau ne fait pas 2 dimensions, mais normalement si j'ai bien lu la doc php (vi je n'utilise jamais mysql_fetch_row() ), ils disent que ça retourne un tableau qui commence à l'indice 0 et qui contient les champs demandés lors de la requête.
 
Donc je suppose que si tu ne demandes qu'un seul champs, tu ne dois avoir que l'indice 0 de ton tableau de remplit... et pas le 1, ...
 
si tu veux 2 valeurs faudrait mettre qqch du genre
"select id, LibCat from categoriepers"
 
au fait tu as un ; qui traîne après le </option>
il te faut aussi un </select> avant ton </td>

 

[edtdd]--Message édité par ethernal--[/edtdd]

Reply

Marsh Posté le 17-11-2001 à 21:24:26    

Essaye çà :
 
<TD>Votre catégorie :</TD>  
<TD><SELECT name="categorie">  
<?php  
 $requet = "select LibCat from categoriepers";  
 $result = mysql_query($requet);  
                             
 while($cat = mysql_fetch_row($result))
 {  
        echo( "<OPTION>$cat[0]</OPTION>" )
 }
?>
</TD>  
 
Avec çà, tu as un champ de formulaire qui se nom "categorie", et dont le script PHP qui récupère les valeurs du formulaire a une variable $categorie avec l'option choisie.
 
Y'a pas de "NAME=" sur OPTION en Html !
A quoi çà servirait ?
Y'a un ID, mais c'est pour pouvoir manipuler la valeur des options en Javascript.
 
A+


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 17-11-2001 à 21:32:59    

ouaip tout à fait.
perso je trouve ton code plus clair Mara's dad, mais j'ai pas osé ;) pour pas l'embrouiller tout de suite :lol:
 
pas de NAME, mais il y a un VALUE, c'est sans doute ça que tu voulais...

Reply

Marsh Posté le 17-11-2001 à 21:36:24    

Ethernal a raison, il manque le VALUE de OPTION !
 
<TD>Votre catégorie :</TD>  
<TD><SELECT name="categorie">  
<?php  
   $requet = "select LibCat from categoriepers";  
   $result = mysql_query($requet);  
 
   while($cat = mysql_fetch_row($result))  
   {  
      echo( "<OPTION VALUE='$cat[0]'>$cat[0]</OPTION>" )  
   }  
?>  
</TD>


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 17-11-2001 à 21:48:36    

comme je l'avais dis j'avais essayé avec echo "..."; mais ca n'avait pas marché, g continué avec cette méthode plus complexe j'avoue parce que je l'avais vu faite dans un code ASP.
 
sinon en effet je pense que NAME dans option ne sert à rien d'ailleur il me posait problème mais je l'ai vu sur commentcamarche.com lorsque g regardé comment on faisait un formulaire.
 
par contre sur le </select> je suis impardonnable!!
 
voici mon code modifié :
<TR>
<TD>Votre catégorie :</TD>
<TD><SELECT name="categorie">
   <?php
   $requet = "select LibCat from categoriepers";
   $result = mysql_query($requet);
 
   while($cat = mysql_fetch_row($result)){
      $LibCat = $cat[0];
      echo( "<OPTION>$cat[0]</OPTION>" );
   }
   ?>
</SELECT>
</TD>
</TR>
 
malheureusement ca ne fonctionne tjs pas!!

Reply

Marsh Posté le 17-11-2001 à 22:12:59    

Bien vu pour le </SELECT>
 
La ligne "$LibCat = $cat[0];" ne sert à rien
 
Remplace echo( "<OPTION>$cat[0]</OPTION>" ); par
echo( "<OPTION VALUE='$cat[0]'>$cat[0]</OPTION>" );
 
Ca marche pas, OK mais çà fait quoi ?
Le formulaire s'affiche ou pas ?
 
Donne un exemple de code généré pour le formulaire. (Dans ton navigateur, fait "Afficher le source" ou un truc du genre)


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 17-11-2001 à 22:12:59   

Reply

Marsh Posté le 17-11-2001 à 22:30:41    

oki pour la ligne (comme pour le reste je l'ai vu faire et ca m'avait semblé logique et bien sur j'avais rien compris!)
 
sinon ça m'affiche bien ma page avec mon formulaire sauf qu'il n'y a rien dans ma liste.
 
g essaye de récupérer la source de la page web mais je sais pas pourquoi ca n'a rien fait du tout (et pourtant ca c pas compliqué c sur!!).

Reply

Marsh Posté le 17-11-2001 à 22:39:42    

Juste pour vérifier...
Tu n'oublie pas de te connecter à ta base MySql par hazard ?
 
Sinon, on peux la voir quelque-part cette page ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 18-11-2001 à 10:24:57    

au début j'avais oublié !! mais je l'ai fais et je c que ca marche bien.
 
sinon ces pages web ne sont pas faites pour être mises en ligne concrètement. je fais cette action pour mes études (BTS informatique de gestion ça fout un peu la honte de pas savoir résoudre les pb de programmation !! mais g une excuse : j'apprends toute seule ce langage!!)
 
je ne vois vraiment pas ce qui peut déconner g cherché et testé pleins de trucs différents mais ca calle complètement.
si tu veux bien m'aider (ou quelqu'un d'autre) je peut t'envoyer mon code complet sur ta boite.

Reply

Marsh Posté le 18-11-2001 à 10:29:09    

Envoie le code !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 19-11-2001 à 13:37:40    

<form action="eleves.php" method="post">
 <input type="hidden" name="act" value="ajout">
 Prenom <input type="text" name="prenom" value=""><p>
 Nom <input type="text" name="nom" value=""><p>
 Groupe  
 <select name="ref_groupe">
 <?
$res0 = mysql_query("SELECT ref_groupe FROM groupes ORDER BY ref_groupe" );
 
while ($arr0 = mysql_fetch_object($res0)){
echo "<option value=\"$arr0->ref_groupe\" >$arr0->ref_groupe</option>";
}
 ?>
 </select>
 <p>
 <input type="submit" value="Valider">
</form>
 
La requete sql donne une colonne de  type chaine de caractere.
Puis chaque enregistrement de cette colonne est affiché dans une liste du formulaire.

 

[edtdd]--Message édité par cooltwan--[/edtdd]

Reply

Marsh Posté le 19-11-2001 à 14:29:48    

Hello !
Je suis au boulot donc pas trop le temps de voir les réponses données, mais sur ton script donné tout au début, quand tu fais tes <?php $cat[0] ?>, ben il manque tout simplement le print (ou le echo tu as le choix) .... <?php echo $cat[0] ?>  ... fo pas confondre avec l'asp où l'on peu se permettre un <%= cat[0] %> :)

Reply

Sujets relatifs:

Leave a Replay

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