php/html

Eléphant du PHP | 123 Messages

06 mars 2009, 10:25

bonjour à tous

un nouveau problème se pose à moi,

je souhaite créer un tableau en html , jusqu'ici pas de problème

d'un autre coté j'ai crée une liste déroulante en php qui vient prendre des données d'une base mysql

jusqu'ici sa va

maintenant je souhaite mettre la listbox crée dans "une case" du tableau html

j'ai essayé mais cela ne marche pas avec mon cod que voici
<?
//...connexion à la bdd qui marche
//...executiond'une requete qui marche
//debut du code pour la combobox
echo "<select  size='1'>";
//a faire pour afficher les données de la table
while ($donnees = mysql_fetch_array($req) )
{
// renvoit les données dans un tableau
//echo $donnees['InitialesFormateur'] echo"<br>"
//renvoit les données dans une combobox
$combobox="<option selected>".$donnees['InitialesFormateur']."</option>";//mise en variable de //la combobox voulue ce qui marche
}


echo'<TABLE BORDER="1">';
  echo"<CAPTION> Voici le planning de la formation... </CAPTION>";
  echo"<TR>";
	echo"<TH> Date </TH>";
	echo"<TH> informations générale </TH>";
	echo"<TH> module </TH>";
	echo"<TH> Theme </TH>";
	echo"<TH> formateur </TH>";
	echo"<TH> pilote principal </TH>";
	echo"<TH> pilote secondaire </TH>";
	echo"<TH> salle </TH>";
	echo"<TH> ressource </TH>";
 echo" </TR>";
  echo"<TR>";
	echo"<TD> date1 </TD>";
	echo"<TD> infog1 </TD>";
	echo"<TD> module1 </TD>";
	echo"<TD> theme1 </TD>";
	echo"<TD> ".$combobox." </TD>";//the combobox a afficher  :roll: 
	echo"<TD> pilote p1 </TD>";
	echo"<TD> pilote S1 </TD>";
	echo"<TD> salle1 </TD>";
	echo"<TD> ressource1 </TD>";
  echo"</TR>";
echo"</TABLE> ";

//}
 mysql_close();
 ?>
 
 
resultat

je n'obtient l'affichage que de la combobox...

Petit nouveau ! | 6 Messages

06 mars 2009, 10:42

Bonjour,

c'est tout à fait normal,

si tu regarde le code html généré par ton script, ça doit ressemblé à quelque chose comme ça :

Code : Tout sélectionner

<select ....> <table> ... <tr> <td> <option ...> ...
le navigateur interprète dans l'ordre il ouvre un "select", ensuite il s'attend à trouvé des "option" il ne fait pas attention à ce qu'il trouve et qu'il ne comprend pas (les "table", "tr", etc)...

le select ne doit être ouvert que une fois dans le tableau.

il faut que ton PHP ressemble plus à quelque chose comme ça :

Code : Tout sélectionner

<?php $html_select = '<select>'; foreach($mes_donnees as $une_donnee) { $html_select .= '<option value="'.$une_donnee.'">'.$une_donnee.'</option>'; } $html_select .= '</select>'; echo '<table>', '<tr>', '<td>', $html_select, '</td>', '</tr>', '</table>'; ?>

PS : ce topic aurait plutot dans "PHP Débutant"

Eléphant du PHP | 123 Messages

06 mars 2009, 11:23

je ne suis pas sur de bien comprendre ta logique mais j'ai dejà essayé ton option et si j'appelle la variable en plein milieu du tableau il ne restera qu'une combobox sans le tableau et avec un seul choix puisqu 'il n est plus dans le while


je pense ne pas avoir compris y aurait il quelqun pour detailler un peu plus son explication?

11:21

apres avoir vraiment suivi ton système je pense que sa passe pas je comprend pas ton code avec les concatenations du html_select

Mammouth du PHP | 568 Messages

06 mars 2009, 13:45

En fait ta variable $combobox ne contient que les options de ton select sans la balise <select>, afin de résoudre ton problème il te suffit d'intégrer ta balise select dans ta variable $combobox comme ci-dessous.
$combobox = "<select  size='1'>";
//a faire pour afficher les données de la table
while ($donnees = mysql_fetch_array($req) )
{
// renvoit les données dans un tableau
//echo $donnees['InitialesFormateur'] echo"<br>"
//renvoit les données dans une combobox
$combobox .= "<option selected>".$donnees['InitialesFormateur']."</option>";//mise en variable de //la combobox voulue ce qui marche
} 
$combobox .= "</select>";