Generer une ligne supplementaire en php

Fermé
Mr Joé Messages postés 94 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 5 décembre 2008 - 19 mars 2008 à 11:14
Enax Messages postés 203 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 16 mars 2010 - 19 mars 2008 à 13:31
Bonjour,

D'habitude on trouve tout sur la toile mais la j'ai du mal à trouver ce que je cherche. J'ai un page php ou l'utilisateur à la possibilité de sélectionner plusieurs case à cocher (revoyant un valeur bien sur ex :
<input type='checkbox' name='formulaire[]' value='F.4 Engagement de travail formateur'/> )

Puis dès qu'il valide son choix j'aimerai que les données sélectionner par l'utilisateur se répercute dans un tableau. En théorie cela semble semble à effectuer mais le problème vient du faite qu'il y à plusieurs cache à cocher et je trouve vraiment pas très futé de créer toutes les cellules à la main pour récupérer les données.

Pour plus d'explication : un fois qu'il sélectionne et valide ses choix et boucle me permet de balayer mes case à cocher puis de renvoyer les valeurs de chaque case.

for ($i = 0, $c = count($_POST['formulaire']); $i < $c; $i++)

{ echo "<br/>" .$_POST['formulaire'][$i]. "";}

C'est juste un texte qui me permet de vérifier que mes données apparaissent bien à l'écran. Mais maintenant j'aimerai l'insérer dans un tableau mais ça je n'arrive pas. J'ai essayé un boucle mais ça m'affiche deux fois le tableau j'aimeerai juste que l'entete reste fiché et que des ligne s'ajoute en fonction du nombre de case à cocher. Voila mon code :

for ($i = 0, $c = count($_POST['formulaire']); $i < $c; $i++)

{
$testça[$i]=$_POST['formulaire'][$i];

echo "<fieldset>
<legend>Selectionner formulaire</legend>
<center>
<table text-align='center' border='2'>

<tr>
<td>
<input type='checkbox' name='formulaire1' />
</td>
<td>
<center>Libellé</center>
</td>
<td>
'
</td>
<td>
'
</td>
<td>
'
</td>
<td>
'
</td>
</tr>

<tr>
<td>
<input type='checkbox' name=''/>
</td>
<td>
<label for='formulaire'> $testça[$i]</label>
</td>
<td>
<center><img src='image/b_browse.jpg'/></center>
</td>

<td>
<center><img src='image/b_edit.jpg'/></center>
</td>

<td>
<center><img src='image/b_drop.jpg'/></center>
</td>

<td>
<center><img src='image/b_print.jpg'/></center>
</td>
</tr>


</table>
</center>

</fieldset>


</form>";
}


ça fonctionne mais j'ai 2fois le même table bien sur dans le deuxième table le libellé est différent du 1er tableau mais je souhaite qu'il s'ajoute après le 1er libellé et non qu'il créé le même table avec les libellé qui change


je serai disponible pour la moindre informations complémntaire
cordialement,

1 réponse

Enax Messages postés 203 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 16 mars 2010 145
19 mars 2008 à 13:31
C'est une simple question de logique : si tu veux n'afficher qu'une ligne, tu ne mets dans ta boucle que le code concernant la ligne, et non celui de la table entière.

Exemple :
<table>
	<tr>
		<td>Colonne 1</td>
		<td>Colonne 2</td>
		<td>Colonne 3</td>
		<td>Colonne 4</td>
	</tr>
	<?php
		for($i = 0 ; $i < 3 ; $i++)
			echo '
				<tr>
					<td>Cellule '.$i.' - 1</td>
					<td>Cellule '.$i.' - 2</td>
					<td>Cellule '.$i.' - 3</td>
					<td>Cellule '.$i.' - 4</td>
				</tr>';
	?>
</table>
0