Page 1 sur 1

probleme insertion champs supplementaires formulaire php

Posté : 21 sept. 2011, 14:32
par baxterbax
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 script qui sert à ajouter des champs
 



<code type="php">
// 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 />';

		}

Re: probleme insertion champs supplementaires formulaire php

Posté : 21 sept. 2011, 16:16
par xTG
Tu n'as pas de $i à mettre dans le nom du champ.
Il le fait tout seul en partant de 0.

Re: probleme insertion champs supplementaires formulaire php

Posté : 21 sept. 2011, 16:29
par baxterbax
tu veux dire si j'écris cela ?:

// on affiche tous les champs du formulaire
for ($i=1; $i<=$_POST['nb_champs']; $i++){
echo '<INPUT TYPE="text" name="nom[]">';echo '<INPUT TYPE="text" name="prenom[]">';echo '<INPUT TYPE="text" name="email[]"><br />';



Je vien de tester, effectivement ça marche, mais il prend toujours que la premiere ligne.

Re: probleme insertion champs supplementaires formulaire php

Posté : 22 sept. 2011, 11:11
par Mazarini
$size=sizeof('nb_champs');

Je mettrais plutôt : $size=sizeof($nom);

Re: probleme insertion champs supplementaires formulaire php

Posté : 22 sept. 2011, 20:19
par baxterbax
merci, mais ça ne change rien au probleme

Re: probleme insertion champs supplementaires formulaire php

Posté : 23 sept. 2011, 13:22
par baxterbax
je viens de reprendre le script mais à vrai dire je ne suis pas un crack en php, et ça ne marche pas, soyez indulgent des erreurs alors . berf mon probleme c'est qu'on dirait qu'il manque un champs obligatoire ( nom,prenom ou email) pour qu'il enregsitre les valeurs dans la base :

<?php
	// On initialise les sessions
	session_start();


$nom = (isset($_POST['nom'])) ? $_POST['nom['.$i.']'] : '';

$prenom = (isset($_POST['prenom'])) ? $_POST['prenom['.$i.']'] : '';

$email = (isset($_POST['email'])) ? $_POST['email['.$i.']'] : '';


$captcha = (isset($_POST['captcha'])) ? $_POST['captcha'] : '';


$nom_atelier=($atelier);

$ok = (isset($_GET['inscription'])) ? $_GET['inscription'] : '';

$id  = $_GET["idPersonne"] ;


// on crée la requête SQL 
$sql = 'SELECT haut FROM structure'; 

// on envoie la requête 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 

// on fait une boucle qui va faire un tour pour chaque enregistrement 
while($data = mysql_fetch_assoc($req)) 
    { 
    // on affiche les informations de l'enregistrement en cours 
    echo' '.$data['haut'].''; 
   
    } 


if ( !empty($_POST['captcha']) ) {
		$captchacrypte = md5($_SESSION['captcha']);

		// On supprime la session pour éviter la récupération pour les robots
		$_SESSION['captcha'] = '';
	}
	
	// On prépare la liste de caractère a inséré dans le captcha
	$chaine = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');

	// On prépare le compteur de caractère
	$nb = 0;

	// On limite à 6 caractères
	while( $nb < 6 ) {

		// On tire un nombre au hazard
		$rand = rand(0,51);

		// On regarde à quelle lettre il correspond et on l'ajoute à la chaine
		$chaine2 .= $chaine[$rand];

		// On prépare pour la lettre suivante
		$nb++;
	}

	// Enfin on génère la session
	$_SESSION['captcha'] = $chaine2;


	if ( $captchacrypte == md5($_POST['captcha']) AND !empty($_POST['captcha'])&&($_POST['nom'])&&($_POST['email'])&&($_POST['atelier']) ) 
	
{
  $nom_atelier=$_POST['atelier'];
   $nom=$_POST['nom'];
   $prenom=$_POST['prenom'];
   $email=$_POST['email'];

    $size=sizeof('$nom');
   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());

   }


 }


?>

    </tr>
    <tr> 
      <td align="" valign="center"> 
        <?

 
//echo '<form method="post" action="ateliers.php">';  

  echo' <form method="post" action="" id="idPersonne' . $id . '" enctype="multipart/form-data" onClick="traitement(this.id)">';


 $reponse0 = mysql_query('SELECT COUNT(*) AS nb_activites FROM ateliers WHERE theme = '.$id.' ORDER BY atelier') or die(mysql_error());

 $donnees0 = mysql_fetch_array($reponse0);

 $nb_activites = $donnees0['nb_activites'];


// echo '<h3>Liste des activit&eacute;s</h3>';
 

 if($nb_activites == 0)

 {  echo 'Aucun événement(s) trouvé (s) pour le moment.<br /><br />'; }


  else  {

   if($nb_activites == 1)

    {echo 'Il y a '.$nb_activites.'  événement(s) trouvé (s).<br /><br />';}

     else

     { echo 'Il y a '.$nb_activites.'  événement(s) trouvé (s).<br /><br />';}

  }


 //récupération de la variable d'URL,
  //qui va nous permettre de savoir quel enregistrement modifier
  $id  = $_GET["idPersonne"] ;


 $reponse1= mysql_query('select* from ateliers WHERE id = '.$id.' ORDER BY atelier')or die(mysql_error());


 while ($donnees1 = mysql_fetch_array($reponse1))

 {    
     
     $id = $donnees1['id'];
     $id_atelier = $donnees1['id']; 
	 $id = $donnees1['id'];   
     $nom_atelier = $donnees1['id']; 
     $atelier = $donnees1['atelier'];
     $places = $donnees1['places'];
     $details = $donnees1['details'];
     $dates = $donnees1['dates'];
   
  ?>
  <style type="text/css">
  .fondClaire{
    background-color: #F1F5FA;
   border: 1px dotted #000000;
 }
  </style>
</head>
<body>

<table width="700"class="fondClaire">
  <tr>
    <td width="132" height="144" class="fondClaire">
    
    
    
    <td width="750" height="144" valign="top" class="fondClaire">
  
  <p>
    <?
   echo ' <font color="#266577"><strong>'.$atelier.'</strong></font><br />';
   echo'<br>';
    echo '<font color="#000000"><font size="2"><strong>'.$dates.'</strong></font><br />';
 echo'<br>';
 
  if(empty($details))  {   echo '<br>';  } 

  else    {   echo ''.nl2br($details).'';  }

 
   $reponse2 = mysql_query('SELECT COUNT(*) AS nb_de_places_occupees FROM noms WHERE id_atelier = '.$id_atelier.'');
  
  $donnees2 = mysql_fetch_array($reponse2);

  $nb_de_places_restantes = $places - ($donnees2['nb_de_places_occupees']);

  echo 'Nombre de places total : '.$places.'<br />';

  echo 'Nombre de places restantes : '.$nb_de_places_restantes.'';

   if($nb_de_places_restantes =='0') {  

  echo 'Plus de places disponibles';



 }

  ?>
  </p>
  <table width="250" border="0" align="right">
    <tr valign="bottom">
      <td height="31" align="right">
    <?
      if($nb_de_places_restantes >'0') {  


       echo ' <font color="#266577"><strong></strong></font><input type="button" value="Reservez"> '; 
  
     echo ' <font color="#266577"><strong>Reservez</strong></font><input type="hidden" name="atelier"  value="'.$nom_atelier.' ">'; 

 }?>
 
 </td>
    </tr>
</table></td>
</tr></table>

<?
$id  = $_GET["idPersonne"] ;
echo'</font>';
 echo '<font color="#266577"><font size="3"><strong></strong></font><br />';

echo'<hr><style="border-style: border-bottom: 3px dotted #266577; color="#266577;"></hr>'; 
echo '<br>';

 }
?>
</tr>
    <tr> 
      <td align="center" valign="center"> 
        <?

// on crée la requête SQL 
$sql = 'SELECT bas FROM structure'; 

// on envoie la requête 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 

// on fait une boucle qui va faire un tour pour chaque enregistrement 
while($data = mysql_fetch_assoc($req)) 
    { 
    // on affiche les informations de l'enregistrement en cours 
    echo' '.$data['bas'].''; 
   
    } 

$nbre_participant=1;
$nom="nom";
?>
        <br>
<p align="center"><font face="Verdana, Arial, Helvetica, sans-serif"><span
class="bloc"><font size="4"><strong>Pour vous inscrire aux ateliers du
  CCSTI,<br>
<br>
cochez une ou plusieurs activités de votre choix et
remplissez ce formulaire :</strong></font> </span><br>
</font> </p>
<table width="550"
border="0" align="center" cellpadding="2" cellspacing="2"
style="text-align: left; margin-left: auto; margin-right: auto; height: 150px; width: 356px;">
<tbody>
<tr>
  <td width="42"></td>
<td width="38"></td>
<td width="51" style="text-align: center;"></td>
<td width="144" style="text-align: center;"></td>
<td width="144" style="text-align: center;"></td>
</tr>
<tr>
  <td height="24" colspan="3" nowrap="nowrap">&nbsp;</td>
  <td valign="middle" style="text-align: center;">&nbsp;</td>
  <td valign="middle" style="text-align: center;">&nbsp;</td>
</tr>
<tr>
  <td height="24" colspan="3" nowrap="nowrap">&nbsp;</td>
  <td valign="middle" style="text-align: center;">&nbsp;</td>
  <td valign="middle" style="text-align: center;">&nbsp;</td>
</tr>
<tr>



<?php

// 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++){
				
			
				$nom = 'nom'.$i;
				
				$value1 = $_POST[$nom];

	                $prenom= 'prenom'.$i;
				
				$value2 = $_POST[$prenom];


	                $email= 'email'.$i;
				
				$value3 = $_POST[$email];


                 
				echo 'nom'.$i.'  : '.$value1.''; echo 'prenom'.$i.' : '.$value2.'' ; echo 'email'.$i.' : '.$value3.'<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['submit']) && $_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 , '" value1="' , isset($_POST['nom'.$i]) ?  $_POST['nom'.$i] :  '' , '">   
  
  
  <input name="prenom' , $i , '" type="text" id="prenom' , $i , '" value2="' , isset($_POST['prenom'.$i]) ?  $_POST['prenom'.$i] :  '' , '">
  
 
  <input name="email' , $i , '" type="text" id="email' , $i , '" value3="' , 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">';
		echo '</FORM>';

 


}




echo '<FORM METHOD="post" action="">';
?>
		
<tr>

  <td>  
  <td style="text-align: center;">&nbsp;</td>
</tr>
<tr>
  <td colspan="3">&nbsp;</td>
  <td style="text-align: center;">&nbsp;</td>
  
  <td style="text-align: center;">&nbsp;</td>
</tr>
<tr>
  <td height="55" colspan="5" align="center" valign="bottom"><input type="Button" value="Participant(s)" onClick="Ajouter()" /></td>
  </tr>
<tr>
  <td colspan="5" align="center" style="vertical-align: top;"><p><br>
  <Div ID=saisies>
   

  </Div></td>
</tr>
<tr valign="middle">
<td colspan="5" style="vertical-align: center;" height="42">
<div align="center"><br>
<img src="captcha.php"> <font
face="Verdana, Arial, Helvetica, sans-serif" size="3">Recopiez ce code
: </font> <input name="captcha" size="6" maxlength="6" type="text"> <br>
</div>
<p> </p>
</td>
</tr>
<tr>
<td colspan="5" rowspan="1" style="vertical-align: top;">
<div style="text-align: center;"><input type="submit" name="valider_form" value="Valider" />

<br>
</div>

</td>
</tr>
<tr>
<td colspan="5" rowspan="1" style="vertical-align: center;"><br>
</td>
</tr>
</tbody>
</table>

<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title></title>

<body>
<p>&nbsp;</p>
<p><span style="color: red;">*</span> : saisie obligatoire<br>
  Les autres informations sont facultatives. Nous nous engageons à
  préserver la confidentialité de ces informations.
</p>
</body>
</html></form>
 <?

echo'<br>';
echo'<br>';
echo'<br>';


if($ok=='ok') {  

echo '<font color="#FF0000"><font size="5">Votre inscription a bien &eacute;t&eacute; prise en compte ! Merci.</font>';



}
else { if($ok!='ok') echo '<font color="#FF0000"><font size="4">Vous devez indiquer vos coordonn&eacute;es dans les champs &agrave; remplir.</font color"></font>';}

if ( !empty($_POST['captcha']) ) {
		echo "\t\t\t<B style=\"color : #ff0000;\">Le code saisi est incorrect</b><br />\n";}

 
?>


Re: probleme insertion champs supplementaires formulaire php

Posté : 23 sept. 2011, 13:50
par Mazarini
Dans ce que j'ai vu, il ne faut pas de quote dans la ligne suivante :
$size=sizeof('$nom');

Mais, ton script est trop long pour que je l'étudie en entier. Au mieux, une lecture en diagonal. Il est fort improbable que je réécrive le script à moins de sombrer dans l'ennuie et de n'avoir que ça à faire.

Comme remarque générale, tu peux faire des fonctions pour que chacune fasse une chose précise et le fasse bien. Par exemple, tu peux faire une fonction ajout_personne() avec comme paramètre les données à insérer. Tu pourras ainsi tester la fonction qui une fois au point ne posera plus de problème et tu passeras à une autre fonction. Au final, il ne faudra plus qu'enchainer des fonctions qui marchent car testées auparavant.
je viens de reprendre le script mais à vrai dire je ne suis pas un crack en php, et ça ne marche pas, soyez indulgent des erreurs alors . berf mon probleme c'est qu'on dirait qu'il manque un champs obligatoire ( nom,prenom ou email) pour qu'il enregsitre les valeurs dans la base :
Message d'erreur mysql ?

Pour un insert je te conseille de nommer les colonnes : insert into TaTable(col1,col2,...) values(val1,...)

Re: probleme insertion champs supplementaires formulaire php

Posté : 23 sept. 2011, 16:35
par baxterbax
merci, je n'esperais pas que quelque un le refasse à ma place moi, juste jetter un oeil pour m'aider corriger. je n'ai pas de message d'erreur en particulier mais quand je clique sur valider le formulaire il relance la page mais rien de plus dans la base. acceptes-tu de regarder les parties qui me semblent poser des problèmes ? dans ce cas je veux bien redonner volontier une partie du script afin de ne pas fatiguer tes yeux .

Re: probleme insertion champs supplementaires formulaire php

Posté : 23 sept. 2011, 16:59
par baxterbax
je suppose que le probleme provient de cette partie du script qui sert a ajouter les champs supplémentaires :



// 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++){
				
			
				$nom = 'nom'.$i;
				
				$value1 = $_POST[$nom];

	                $prenom= 'prenom'.$i;
				
				$value2 = $_POST[$prenom];


	                $email= 'email'.$i;
				
				$value3 = $_POST[$email];


                 
				echo 'nom'.$i.'  : '.$value1.''; echo 'prenom'.$i.' : '.$value2.'' ; echo 'email'.$i.' : '.$value3.'<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['submit']) && $_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 , '" value1="' , isset($_POST['nom'.$i]) ?  $_POST['nom'.$i] :  '' , '">   
  
  
  <input name="prenom' , $i , '" type="text" id="prenom' , $i , '" value2="' , isset($_POST['prenom'.$i]) ?  $_POST['prenom'.$i] :  '' , '">
  
 
  <input name="email' , $i , '" type="text" id="email' , $i , '" value3="' , 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">';
		echo '</FORM>';

 


}

m

Re: probleme insertion champs supplementaires formulaire php

Posté : 24 sept. 2011, 20:40
par sirakawa
il faut <input .... name ='nom[]'....>
et à la récupération on a un tableau des noms qu'on peut lire par exemple par un foreach...

Re: probleme insertion champs supplementaires formulaire php

Posté : 25 sept. 2011, 12:34
par baxterbax
meci, oui cette solution fonctionne en partie, il accepte bien plusieurs lignes par contre il n'insere pas le champs prenom et email. il retourne ( array) à la place. il doit y avoir encore des erreurs . mais lesquelles ?


ma requete
 foreach ($_POST['nom'] as $nom)
  {

       mysql_query("INSERT INTO noms VALUES('' ,'" . $nom_atelier. "','" . $id_atelier. "', '" . $nom . "', '" .$prenom . "','" . $email . "')" ) or die (mysql_error());

   }


l'ajout de champs supplémentaires :

// 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++){
				
			
				$nom = 'nom'.$i;
				
				$value = $_POST[$nom];

	                $prenom= 'prenom'.$i;
				
				$value = $_POST[$prenom];


	                $email= 'email'.$i;
				
				$value = $_POST[$email];


                 
				echo 'nom'.$i.'  : '.$value.''; echo 'prenom'.$i.' : '.$value.'' ; 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">';
	

 


}

Re: probleme insertion champs supplementaires formulaire php

Posté : 25 sept. 2011, 14:11
par sirakawa
[quote="baxterbax"]
ma requete : parcourt le tableau posté sous le nom 'nom', mais pas les tableaux postés sous les noms 'prenom' ou 'email'.
 foreach ($_POST['nom'] as $nom)
  {

       mysql_query("INSERT INTO noms VALUES('' ,'" . $nom_atelier. "','" . $id_atelier. "', '" . $nom . "', '" .$prenom . "','" . $email . "')" ) or die (mysql_error());

   }
Pour gérer les 3 tableaux à la fois essaie :
compter le nombre d'éléments (tu l'as, je crois, dans le $_POST)
qqch comme:
$nb_cas = $_POST['nombre_de_cas'];
$t_noms = $_POST['nom']
$t_prenoms = $_POST['prenom']
$t_emails = $_POST['email']
for ($i = 0; $i < $nb_cas; $i++) // 0 et par conséquent < au nombre d'éléments et non <=, parce que les tableaux php démarrent par défaut à 0. La querelle du zéro et du 1 date des débuts de l'informatique et on observe des bizarreries...
{
$nom = $t_noms[$i];
$prenom = $t_prenoms[$i];
$email = $t_emails[$i];
// et ici insert .... values($nom, $prenom, $email)...
}

Re: probleme insertion champs supplementaires formulaire php

Posté : 25 sept. 2011, 20:49
par baxterbax
merci mais j'ai du mal à comprendre ta solution. et les parties à modifier.

Re: probleme insertion champs supplementaires formulaire php

Posté : 25 sept. 2011, 22:48
par baxterbax
merci maintenant ça fonctionne. par contre j'ai encore un souci, si car si on ajoute des champs suplémentaires et qu'ils qui restent vides , je me retrouve avec des lignes vides dans ma table noms. as-tu une idée ?