Page 1 sur 1

Formulaire avec un for

Posté : 14 févr. 2008, 01:02
par neo765
Bonjour,

Je voudrais faire un formulaire avec une boucle :
<?
$j=0;
$req_07_sql = "SELECT * FROM messagerie WHERE destinateur=$id ORDER BY datetime DESC";
	$req_07 = mysql_query($req_07_sql);
	while ($row = mysql_fetch_assoc($req_07)) {
	$id_message = $row["id"];
	$expediteur_message = $row["expediteur"];
	$j++;
?>
<form id="form1" name="form1" method="post" action="">
<input name="<? echo "case_$j"; ?>" type="checkbox" id="<? echo "case_$j"; ?>" value="<? echo "$id_message"; ?>" />
</form>
<?
	}
	mysql_free_result($req_07);
	//---------------------------
// Partie qui ne fonctionne pas
for ($i=1; $i<=$j; $i++)
{
${'recept_'.$i}=(isset($_POST['case_$i'])) ? $_POST['case_$i'] : null;
echo ${'recept_'.$i};
}
?>
La boucle for ne veut pas fonctionner, quand je le fait sans for avec des valeurs entrées manuellement ça fonctionne.

Merci

Posté : 14 févr. 2008, 07:15
par jpaul
Bonjour,

Je ne comprends pas cet algo :
Il y a une première boucle while (sur les enregistrements) où l'on affecte des valeurs, incrémente un compteur et affiche un formulaire (pour chaque enregistrement) sans submit ni méthode action.
Puis une boucle for (de 1 au compteur d'enregistrements) qui récupère des variables post passées par un formulaire.

Si la boucle for doit récupèrer les variables du formulaire, il faudrait les lui envoyer non ?
Tout ça est dans le même fichier ou bien as-tu des fichier différents ?
Si tout est dans le même fichier, il faut peut être une condition pour savoir si la page a été accédée directement ou bien en soumettant le formulaire.

Que veux-tu faire précisement ?

Posté : 14 févr. 2008, 11:43
par neo765
Bah en faite, c'est pour supprimer des messages via une checkbox

Principe :

Pour chaque enregistrement je crée une checkbox portant un nom différent (l'incrémentassion de $j)

En récupère la valeur du checkbox pour chaque message avec :

Une boucle for :
isset($_POST['case_'])) ? $_POST['case_'] : null;
Ça fonctionne très bien quand il n'y a pas de boucle

Merci

Posté : 14 févr. 2008, 12:11
par Berzemus
et avec $i=0 plutôt que 1 ? et un echo de $j juste avant la boucle, pour savoir ce qu'il en est..

Re: Formulaire avec un for

Posté : 14 févr. 2008, 12:19
par AB
//---------------------------
// Partie qui ne fonctionne pas
for ($i=1; $i<=$j; $i++)
{
${'recept_'.$i}=(isset($_POST['case_$i'])) ? $_POST['case_$i'] : null;
echo ${'recept_'.$i};
}
?>[/php]
Il faut écrire $_POST["case_$i"] donc avec des doubles quotes pour que $i soit interprété

Sinon je trouve un peu compliqué tes variables $recept
ça serait pas plus simple de faire un tableau
$recept = array();
for ($i=1; $i<=$j; $i++)
{
$recept[$i]=(isset($_POST["case_$i"])) ? $_POST["case_$i"] : null;
echo $recept[$i];
}

Posté : 14 févr. 2008, 14:29
par neo765
Il faut écrire $_POST["case_$i"] donc avec des doubles quotes pour que $i soit interprété
Merci c'est good :wink: