Formulaire avec un for

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Formulaire avec un for

par neo765 » 14 févr. 2008, 14:29

Il faut écrire $_POST["case_$i"] donc avec des doubles quotes pour que $i soit interprété
Merci c'est good :wink:

Re: Formulaire avec un for

par AB » 14 févr. 2008, 12:19

//---------------------------
// 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];
}

par Berzemus » 14 févr. 2008, 12:11

et avec $i=0 plutôt que 1 ? et un echo de $j juste avant la boucle, pour savoir ce qu'il en est..

par neo765 » 14 févr. 2008, 11:43

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

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

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 ?

Formulaire avec un for

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

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