probleme insertion champs supplementaires formulaire php - PHP - Programmation
Marsh Posté le 23-09-2011 à 06:21:28
juste comme ca vite fait :
$dynamique = 'nom_'.$i;
je vois pas de champ defini avec un name de ce genre la
echo '<INPUT TYPE="text" name="nom[]'.$i.'">';echo '<INPUT TYPE="text" name="prenom[]'.$i.'">';echo '<INPUT TYPE="text" name="email[]'.$i.'"><br />';
c'est normal que les $i soient a l'exterieur des crochets?
Marsh Posté le 23-09-2011 à 10:30:53
merci, ok je viens de voir que le script que j'avais envoyé n'était pas le bon. mais avec celui-ci ça ne marche pas non plus car impossible de valider le formulaire, c'est comme si il lui manquait un champs ( nom ou prenom ou email) pour envoyer le formulaire.
mon script .
// si l'utilisateur soumet le formulaire on affiche la valeur de tous les champs du formulaire
if (isset($_POST['submit']) && $_POST['submit'] == "Envoyer" ){
// on affiche le nombre de champs du formulaire
echo 'Nombre de champs : '.$_POST['nb_champs'].'<br />';
// on affiche la valeur des champs du formulaire
for ($i=1; $i<=$_POST['nb_champs']; $i++){
$dynamique = 'nom'.$i;
$value = $_POST[$dynamique];
echo 'nom '.$i.' : '.$value.'<br />';
$dynamique = 'prenom'.$i;
$value2 = $_POST[$dynamique];
echo 'prenom '.$i.' : '.$value.'<br />';
$dynamique = 'email'.$i;
$value3 = $_POST[$dynamique];
echo 'email '.$i.' : '.$value.'<br />';
}
}
// sinon on affiche le formulaire avec la possibilité d'ajout des champs au formulaire
else{
// on défini le nombre initial de champs
if (!isset($_POST['nb_champs'])){
$_POST['nb_champs'] = 1;
}
// si la personne clic sur "un champs en +", on ajoute un champs
if (isset($_POST['ajouter_champs']) && $_POST['ajouter_champs'] == "Un champs en +" ){
$_POST['nb_champs']++;
}
// on affiche le formulaire
echo '<FORM METHOD="post">';
// on place un champ caché contenant un entier ayant comme valeur le nombre de champs du formulaire
echo '<INPUT TYPE="hidden" NAME="nb_champs" VALUE="'.$_POST['nb_champs'].'">';
// on affiche tous les champs du formulaire
for ($i=1; $i<=$_POST['nb_champs']; $i++){
echo '<input name="nom' , $i , '" type="text" id="nom' , $i , '" value="' , isset($_POST['nom'.$i]) ? $_POST['nom'.$i] : '' , '">
<input name="prenom' , $i , '" type="text" id="prenom' , $i , '" value="' , isset($_POST['prenom'.$i]) ? $_POST['prenom'.$i] : '' , '">
<input name="email' , $i , '" type="text" id="email' , $i , '" value="' , isset($_POST['email'.$i]) ? $_POST['email'.$i] : '' , '"><br/>';
}
// on place un bouton permettant de rajouter un champs
echo '<INPUT TYPE="submit" NAME="ajouter_champs" VALUE="Un champs en +"><br />';
// on place un bouton permettant de soumettre le formulaire
echo '<INPUT TYPE="submit" NAME="submit" VALUE="Envoyer">';
}
Marsh Posté le 21-09-2011 à 16:54:05
bonjour,
j'ai un formulaire d'inscription, qui insere automatiquement des champs supplémentaires (non,prenom,email) en fonction d'un nombre de places variable, mon probleme est que je n'arrive pas a récuperer l'ensemble des lignes saisies. il me prend que la premiere à chaque fois. merci par avance à ceux qui veulent bien jeter un oeil et m'aider.
ma requete :
$size=sizeof('nb_champs');
for($i=0;$i<$size;$i++){
mysql_query("INSERT INTO noms VALUES('' ,'" . $nom_atelier. "','" . $id_atelier[$i]. "', '" . $nom[$i] . "', '" .$prenom[$i] . "','" . $email[$i] . "')" ) or die (mysql_error());
}
le bout de script qui me permet de rajouter les champs :
// si l'utilisateur soumet le formulaire on affiche la valeur de tous les champs du formulaire
if (isset($_POST['submit']) && $_POST['submit'] == "Envoyer" ){
// on affiche le nombre de champs du formulaire
echo 'Nombre de champs : '.$_POST['nb_champs'].'<br />';
// on affiche la valeur des champs du formulaire
for ($i=1; $i<=$_POST['nb_champs']; $i++){
$dynamique = 'nom_'.$i;
$value = $_POST[$dynamique];
echo 'Valeur du champ '.$i.' : '.$value.'<br />';
}
}
// sinon on affiche le formulaire avec la possibilité d'ajout des champs au formulaire
else{
// on défini le nombre initial de champs
if (!isset($_POST['nb_champs'])){
$_POST['nb_champs'] = $nb_de_places_restantes;
}
// si la personne clic sur "un champs en +", on ajoute un champs
if (isset($_POST['submit']) && $_POST['submit'] == "Un champs en +" ){
}
// on affiche le formulaire
// on place un champ caché contenant un entier ayant comme valeur le nombre de champs du formulaire
echo '<INPUT TYPE="hidden" NAME="nb_champs" VALUE="'.$_POST['nb_champs'].'">';
// on affiche tous les champs du formulaire
for ($i=1; $i<=$_POST['nb_champs']; $i++){
echo '<INPUT TYPE="text" name="nom[]'.$i.'">';echo '<INPUT TYPE="text" name="prenom[]'.$i.'">';echo '<INPUT TYPE="text" name="email[]'.$i.'"><br />';
}