Formulaire et nombre dynamique de champs input

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 et nombre dynamique de champs input

par supercanard » 01 oct. 2007, 14:50

je ne sait pas si c'est un oubli mais tu définis $nb après l'avoir utilisé dans la première boucle.

après en mettant le code
<?php
$nb = 5;
if (isset($_POST['champ0'])) {
  for ($i=0; $i<=$nb; $i++) {
    echo $_POST['champ'.$i];
  }
} 
l'affichage devrait se faire.
Ah ben oui tout dessuite c'est beaucoup mieux.
J'vé encore devoir me punir pour "erreur à la con" :D
Merci :wink:

par d0m » 01 oct. 2007, 14:45

je ne sait pas si c'est un oubli mais tu définis $nb après l'avoir utilisé dans la première boucle.

après en mettant le code
<?php
$nb = 5;
if (isset($_POST['champ0'])) {
  for ($i=0; $i<=$nb; $i++) {
    echo $_POST['champ'.$i];
  }
} 
l'affichage devrait se faire.

par supercanard » 01 oct. 2007, 14:30

Rappel : Une chaine entre apostrophes n'est pas interprétée...
$_POST['champ.$i']; // retourne l'index : champ.$i

$_POST['champ'.$i]; // retourne l'index : champ1 (si $i==1)
Sortez vos variables !! :)
Oups l'apostrophe c'est une erreur de frappe
tente un
print_r($_POST);
ça t'éclairera un peu plus ;)
Merci j'y avais pas pensé. Ca me retourne rien qui me choque par contre... :
Array ( [champ0] => champ0 [champ1] => champ1 [champ2] => champ2 [champ3] => champ3 [champ4] => champ4 )

par Ryle » 01 oct. 2007, 13:54

Rappel : Une chaine entre apostrophes n'est pas interprétée...
$_POST['champ.$i']; // retourne l'index : champ.$i

$_POST['champ'.$i]; // retourne l'index : champ1 (si $i==1)
Sortez vos variables !! :)

par d0m » 01 oct. 2007, 13:38

tente un
print_r($_POST);
ça t'éclairera un peu plus ;)

par supercanard » 01 oct. 2007, 13:28

Pour le value ça c'est pas grave c'est juste pour remplir le champ pour faire le test :wink:

J'ai un peu avancé, je pensais avoir trouvé la solution mais quenini :(
<?php
if (isset($_POST['champ0'])) {
for ($i= 0; $i != $nb; $i++) {
	echo $_POST['champ.$i'];
}
}

$nb= 5;
echo '<form method="post" action="#">';
for ($i= 0; $i != $nb; $i++) {
	echo '<input type="texte" name="champ'.$i.'" value="champ'.$i.'" />';
}
echo $i.'<input type="submit"></form>';
?>

par netsupra » 01 oct. 2007, 13:20

Salut,
vire le value des champs text pour commencer (je ne pnse pas que tu veuilles faire ce que ca donne).
Tel que c'est ecrit, tu peux recuperer le contenu de tes champ dans le tableau $_POST['champ'][] avec les indices 0 à 4 dans ton exemple.
Netsupra

Formulaire et nombre dynamique de champs input

par supercanard » 01 oct. 2007, 13:11

Bonjour,

Voila mon problème. Je voudrais faire un formulaire dont le nombre de champ peut être variable. Le c'est juste un test j'ai mis cette valeur à 5 :
<?php
$nb= 5;
echo '<form method="post" action="#">';
for ($i= 0; $i != $nb; $i++) {
	echo '<input type="texte" name="champ[]" value="champ'.$i.'" />';
}
echo $i.'<input type="submit"></form>';
?>
Jusque là pas de problème. Sauf que maintenant je voudrais afficher les valeurs, mais je ne vois pas du tout comment faire la boucle.....
if (isset($_POST['champ'])) {
while (quelquechose) {
	echo $_POST['champ'][$i];
}
}
évidement comme ça rien ne marche, et je nage :wink:

Bonne journée