[PHP] Tableau de n lignes et n colones

Résolu
Bonjour,

voila mon problème est que j'ai 2 pages, une page d'interface et une page de génération.

Sur la première page sont saisis par l'utilisateur le nom et le nombre des nœuds, qui correspond aux nombre et au nom de colonnes que je souhaite.

Sur la deuxième page on renseigne le nombre de ligne.

La ou je galère en fait c'est pour arriver a faire prendre à mes colonnes les noms précédemment renseignés et également que cela me génère le nombre de colonne souhaité.

voici mon code

Première page TestInterface.php

<html>
	<title> Générateur de Xml</title>
	<h1 align="center"> Générateur de Xml </h1>
	</br>
	<form action="" method="post">
		Choisissez le nombre de noeuds dont vous avez besoins :
		<input type="text" name="tb_NbrNoeud">
		<input type="submit" name="btn_NbrNoeud" value="Valider">
	</form>

	
	<form action="test.php" method="post">
		<?php
			echo"<input type='hidden' name='tb_NbrNoeudPage' value='$_POST[tb_NbrNoeud]'>";
			if (isset($_POST[btn_NbrNoeud]))
			{
				$i = 1;
				for ($i =1; $i <=$_POST[tb_NbrNoeud];$i++)
				{
					if ($i < 10)
					{
						echo "Nom du Noeud 0$i<input type='text' name='tb_Noeud$i'</br>";
						
					}
					else
					{
						echo "Nom du Noeud $i<input type='text' name='tb_Noeud$i'></br>";
					}
				}
				echo "<input type='submit'>";
			}
		?>
	</form>
</html>


jusque ici c'est bon c'est sur la deuxième page que ça marche pas

page test.php

<html>
	<form action="test.php" method="post">
		Nombre de lignes à saisir dans le fichier xml :
		<input name="tb_NbrLigne" type="text">
		<input action ="test.php" name="btn_NbrLigne" type="submit">
	</form>
</html>
<?php

// ceci est ma boucle pour tester le passage des variables
$j=1;
for ($j = 1; $j<=$_POST[tb_NbrNoeudPage]; $j++)
{
	echo $_POST[tb_Noeud.$j];
}

if (isset($_POST[tb_NbrLigne]))
{
	echo "<table><tr><th>Champ</th><th>Noeud $j</th><th>Noeud pays</th><th>Noeud refartiste</th><th>Noeud artiste</th></tr>";
	$i = 1;
	for ($i =1; $i <=$_POST['tb_NbrLigne'];$i++)
	{
		if ($i < 10)
		{
			echo '<tr><td>0'.$i.'</td><td><input type="text" name="tb_contenu_chemin[]" /></td><td><input type="text" name="tb_contenu_pays[]" /></td><td><input type="text" name="tb_contenu_refartiste[]" /></td><td><input type="text" name="tb_contenu_artiste[]" /></td></tr>';
		}
		else
		{
			echo '<tr><td>'.$i.'</td><td><input type="text" name="tb_contenu_chemin[]" /></td><td><input type="text" name="tb_contenu_pays[]" /></td><td><input type="text" name="tb_contenu_refartiste[]" /></td><td><input type="text" name="tb_contenu_artiste[]" /></td></tr>';
		}
	}
}

?>


Pourriez vous m'aider ? je vos remerci
Configuration: Windows Vista
Firefox 3.0.3

19 réponses

  1. Bonjour,

    tu as deux formulaires dans la page 1 et ton bouton valider est dans le premier, donc les valeurs du deuxième ne seront jamais postées

    donc met un bouton dans le deuxième avec tous les paramètres celui que tu as mis n'est pas complet il lui manque le value=
    0
    1. essayes comme ça pour la page 1

      <html>
      	<title> Générateur de Xml</title>
      	<h1 align="center"> Générateur de Xml </h1>
      	</br>
      	
      <?php
      //le script s'appelant lui même par le premier formulaire on recupere la valeur du nombre de noeuds
      	if(isset($_POST['tb_NbrNoeud'])){$tb_NbrNoeud=$_POST['tb_NbrNoeud'];}else{$tb_NbrNoeud="";}
      
      ?>	
      	<form action="TestInterface.php " method="post">
      		Choisissez le nombre de noeuds dont vous avez besoins :
      		<input type="text" name="tb_NbrNoeud" value="<?php echo $tb_NbrNoeud?>">
      		<input type="Submit" name="btn_NbrNoeud" value="Continuer">
      <?php
      			if (isset($_POST['btn_NbrNoeud']))
      			{
      
      				$i = 1;
      				for ($i =1; $i <=$_POST['tb_NbrNoeud'];$i++)
      				{
      					if ($i < 10)
      					{
      						echo "Nom du Noeud 0".$i." :<input type='text' name='tb_Noeud".$i."'</br>";
      						
      					}
      					else
      					{
      						echo "Nom du Noeud ".$i." :<input type='text' name='tb_Noeud".$i."'></br>";
      					}
      				}
      				echo "<input type='submit' name='btn_noms_noeuds' value='Valider'>";
      ?>
      	</form>
      </html>
      0
      1. je te remercie de ta réponse et de sa rapidité,

        je ne vois pas trop ou tu veux mettre le bouton sur la deuxième page, le paramètre value="" ne sert il pas juste à afficher quelque chose dans le bouton ?
        0
        1. Désolé il maque des bouts dans le code que je t'ai passé

          mais il faut mettre tous les paramètres dans une balise notamment pour un bouton

          value sert à afficher le texte du bouton

          sinon sur quoi tu vas cliquer pour envoyer le deuxième formulaire ?
          0
          1. page 1: TestInterface.php

            <html>
            	<title> Générateur de Xml</title>
            	<h1 align="center"> Générateur de Xml </h1>
            	</br>
            	<form name="form1" action="TestInterface.php" method="post">
            		Choisissez le nombre de noeuds dont vous avez besoins :
            		<input type="text" name="tb_NbrNoeud">
            		<input type="submit" name="btn_NbrNoeud" value="Continuer">
            	</form>
            
            	
            	<form name="form2" action="test.php" method="post">
            		<?php
            			if (isset($_POST['btn_NbrNoeud']))
            			{
            				echo"<input type='hidden' name='tb_NbrNoeud' value='".$_POST['tb_NbrNoeud']."'>";
            
            				$i = 1;
            				for ($i =1; $i <=$_POST['tb_NbrNoeud'];$i++)
            				{
            					if ($i < 10)
            					{
            						echo "Nom du Noeud 0".$i."<input type='text' name='tb_Noeud".$i."'</br>";
            						
            					}
            					else
            					{
            						echo "Nom du Noeud ".$i."<input type='text' name='tb_Noeud".$i."'></br>";
            					}
            				}
            				echo "<input type='submit' name='bt_noms_noeuds' value='Valider'>";
            			}
            		?>
            	</form>
            </html>
            


            page 2 test.php

            <html>
            
            	<form name="form1 "action="test.php" method="post">
            		Nombre de lignes à saisir dans le fichier xml :
            		<input name="tb_NbrLigne" type="text">
            		<!--<input action ="test.php" name="btn_NbrLigne" type="submit">--> <!-- action dans un input ????? -->
            		 
            	
            
            <?php
            	echo"<input type='hidden' name='tb_NbrNoeud' value='".$_POST['tb_NbrNoeud']."'>";
            
            if(isset($_POST['tb_NbrNoeud'])){ //si on a poste le formulaire TestInterface.php
            	//init de l'array qui va memoriser les noms saisis dans page precedente
            	$array_noms=Array();
            	for ($j = 1; $j<=$_POST['tb_NbrNoeud']; $j++){
            		$array_noms[$j]=$_POST['tb_Noeud'.$j];
            		//TEST
            		echo $_POST['tb_Noeud'.$j]."<br>";
            	}
            //passage en champ caché lorsque la page s'appelle elle même
            	//noms saisis page precedente, on parcours l'array
            	for($j=1; $j<=sizeof($array_noms);$j++){	
            		echo"<input type='hidden' name='tb_Noeud".$j."' value='".$array_noms[$j]."'>";
            	}
            }
            ?>
            	<input type='submit' name="btn_NbrLigne" value='Continuer'>
            </form>
            
            <?php
            if (isset($_POST['btn_NbrLigne']))
            {
            //////la tu peux faire ton traitement
            //tu as dans l'array  $array_noms tous les noms des noeuds sasisi page 1
            //tu as dans $_POST['tb_NbrNoeud'] le nombre de noeuds
            //tu as dans $_POST['tb_NbrLigne'] le nombre de lignes
            
            	echo "<table><tr><th>Champ</th><th>Noeud $j</th><th>Noeud pays</th><th>Noeud refartiste</th><th>Noeud artiste</th></tr>";
            	$i = 1;
            	for ($i =1; $i <=$_POST['tb_NbrLigne'];$i++)
            	{
            		if ($i < 10)
            		{
            			echo '<tr><td>0'.$i.'</td><td><input type="text" name="tb_contenu_chemin[]" /></td><td><input type="text" name="tb_contenu_pays[]" /></td><td><input type="text" name="tb_contenu_refartiste[]" /></td><td><input type="text" name="tb_contenu_artiste[]" /></td></tr>';
            		}
            		else
            		{
            			echo '<tr><td>'.$i.'</td><td><input type="text" name="tb_contenu_chemin[]" /></td><td><input type="text" name="tb_contenu_pays[]" /></td><td><input type="text" name="tb_contenu_refartiste[]" /></td><td><input type="text" name="tb_contenu_artiste[]" /></td></tr>';
            		}
            	}
            }
            
            ?>
            </html>
            
            
            0
            1. je te remercie de ta réponse, je pense avoir compris un peu comment faire, mais je n'y arrive pas ...
              0
              1. tu n'arrives pas à quoi ?

                je t'ai fait la partie jusqu'à la recup des valeurs dans la page 2, à toi de les exploiter ensuite pour faire ton tableau
                0
            2. en fait la je suis en train d'essayer de le faire pour pas trop t'embêter, grâce à ton aide j'arrive à récupérer le nombre de nom de colonnes et à les mettre en titre (mais c'est tout moche) , mais je t'avoue que je galère sur plusieurs choses :

              - avoir le nombre de texte box qui correspond au nombre de titre de colonnes
              - avoir le nom des texte box qui varie (tb_"nomdemavariable""numerodeligne"), car je doit en récupérer le contenu pour générer du xml.
              0
              1. pour le moment j'en suis la,

                <html>
                
                	<form name="form1 "action="test.php" method="post">
                		Nombre de lignes à saisir dans le fichier xml :
                		<input name="tb_NbrLigne" type="text">
                		<!--<input action ="test.php" name="btn_NbrLigne" type="submit">--> <!-- action dans un input ????? -->
                		 
                	
                
                <?php
                	echo"<input type='hidden' name='tb_NbrNoeud' value='".$_POST['tb_NbrNoeud']."'>";
                
                if(isset($_POST['tb_NbrNoeud']))
                { 
                	//si on a poste le formulaire TestInterface.php
                	//init de l'array qui va memoriser les noms saisis dans page precedente
                	$array_noms=Array();
                	for ($j = 1; $j<=$_POST['tb_NbrNoeud']; $j++)
                	{
                		$array_noms[$j]=$_POST['tb_Noeud'.$j];
                		//TEST
                		// echo $_POST['tb_Noeud'.$j]."<br>";
                	}
                	//passage en champ caché lorsque la page s'appelle elle même
                	//noms saisis page precedente, on parcours l'array
                	// for($j=1; $j<=sizeof($array_noms);$j++)
                	// {	
                		// echo"<input type='text' name='tb_Noeud".$j."' value='".$array_noms[$j]."'>";
                	// }
                }
                ?>
                	<input type='submit' name="btn_NbrLigne" value='Continuer'>
                </form>
                
                <?php
                if (isset($_POST['btn_NbrLigne']))
                {
                //////la tu peux faire ton traitement
                //tu as dans l'array  $array_noms tous les noms des noeuds sasisi page 1
                //tu as dans $_POST['tb_NbrNoeud'] le nombre de noeuds
                //tu as dans $_POST['tb_NbrLigne'] le nombre de lignes
                	echo "Champ";
                	$j=1;
                	for($j=1; $j<=sizeof($array_noms);$j++)
                	{	
                		echo $array_noms[$j];
                	}
                	echo"</br>";
                	$i = 1;
                	for ($i =1; $i <=$_POST['tb_NbrLigne'];$i++)
                	{
                		if ($i < 10)
                		{
                			echo '0'.$i;
                			for($j=1; $j<=sizeof($array_noms);$j++)
                			{	
                				echo '<input type="text" name="tb_'.$array_noms[$j].$j.'" value="tb_'.$array_noms[$j].$j.'">';
                			}
                			echo "</br>";
                		}
                		else
                		{
                			echo '<tr><td>'.$i.'</td><td><input type="text" name="tb_contenu_chemin[]" /></td><td><input type="text" name="tb_contenu_pays[]" /></td><td><input type="text" name="tb_contenu_refartiste[]" /></td><td><input type="text" name="tb_contenu_artiste[]" /></td></tr>';
                		}
                	}
                }
                
                ?>
                </html>
                
                


                j'ai le bon nombre de colonnes mais plus leur titres vu qu'il ne semble plus prendre le contenu de array_noms
                0
                1. excuse moi j'avoue j'ai fait n'importe quoi .... ça donne a peu près ce que je veux sauf que c'est moche hihi ^^
                  0
                  1. je t'ai rectifié deux trois trucs

                    mais je ne comprend pas ce que tu veux faire comme tableau

                    et quel rapport avec le XML ?

                    <?php
                    if (isset($_POST['btn_NbrLigne']))
                    {
                    //////la tu peux faire ton traitement
                    //tu as dans l'array  $array_noms tous les noms des noeuds sasisi page 1
                    //tu as dans $_POST['tb_NbrNoeud'] le nombre de noeuds
                    //tu as dans $_POST['tb_NbrLigne'] le nombre de lignes
                    	echo "Champ";
                    	//$j=1; ne sert à rien tu as déja $j=1 dans la boucle
                    	for($j=1; $j<=sizeof($array_noms);$j++)
                    	{	
                    		echo $array_noms[$j];
                    	}
                    	echo"</br>";
                    	//$i = 1; ne sert à rien tu as déja $i=1 dans la boucle
                    	//balise <table> et titres des colonnes
                    	echo "<table><tr><th>Champ</th><th>Noeud $j</th><th>Noeud pays</th><th>Noeud refartiste</th><th>Noeud artiste</th></tr>";
                    
                    	for ($i =1; $i <=$_POST['tb_NbrLigne'];$i++)
                    	{
                    		if ($i < 10)
                    		{
                    			echo '0'.$i;
                    			for($j=1; $j<=sizeof($array_noms);$j++)
                    			{	
                    				echo '<input type="text" name="tb_'.$array_noms[$j].$j.'" value="tb_'.$array_noms[$j].$j.'">';
                    			}
                    			echo "</br>";
                    		}
                    		else
                    		{
                    			echo '<tr><td>'.$i.'</td><td><input type="text" name="tb_contenu_chemin[]" /></td><td><input type="text" name="tb_contenu_pays[]" /></td><td><input type="text" name="tb_contenu_refartiste[]" /></td><td><input type="text" name="tb_contenu_artiste[]" /></td></tr>';
                    		}
                    	}
                    	echo "</table>";
                    }
                    
                    ?>
                    </html>
                    0
                2. Désolé du temps de réponse,
                  
                  En réalité je ne t'ai pas tout dit, ce projet à pour but de permettre à un utilisateur de créer un tableau avec des lignes et colonnes dans le but de générer un document xml servant ensuite à être lu par flash pour faire une galerie photo par exemple.
                  
                  
                  en gros si tu rentre les colonnes "chemin","texte","ref"
                  
                  que tu fait 10 lignes
                  que tu renseigne tb_chemin1, tb_texte1 et tb_ref1 par "xxx" "yyy" et "zzz"
                                                  ........
                                           tb_chemin10, tb_texte10 et tb_ref10 par "xxx" "yyy" et "zzz"
                  
                  cela te génère quelque chose comme ca :
                  
                  <?xml version="1.0"?>
                  <contenu>
                   <pic a="xxx" b="yyy" c="zzz"/>
                   <pic a="xxx" b="yyy" c="zzz"/>
                   <pic a="xxx" b="yyy" c="zzz"/>
                   <pic a="xxx" b="yyy" c="zzz"/>
                   <pic a="xxx" b="yyy" c="zzz"/>
                   <pic a="xxx" b="yyy" c="zzz"/>
                   <pic a="xxx" b="yyy" c="zzz"/>
                   <pic a="xxx" b="yyy" c="zzz"/>
                   <pic a="xxx" b="yyy" c="zzz"/>
                   <pic a="xxx" b="yyy" c="zzz"/>
                  </contenu>
                  


                  Je t'avoue que pour le moment j'en suis assez loin ^^

                  j'en suis la :
                  <html>
                  
                  	<form name="form1 "action="test.php" method="post">
                  		Nombre de lignes à saisir dans le fichier xml :
                  		<input name="tb_NbrLigne" type="text">
                  <?php
                  		echo"<input type='hidden' name='tb_NbrNoeud' value='".$_POST['tb_NbrNoeud']."'>";
                  		if(isset($_POST['tb_NbrNoeud']))
                  		{ 
                  			//si on a poste le formulaire TestInterface.php
                  			//init de l'array qui va memoriser les noms saisis dans page precedente
                  			$array_noms=Array();
                  			for ($j = 1; $j<=$_POST['tb_NbrNoeud']; $j++)
                  			{
                  				$array_noms[$j]=$_POST['tb_Noeud'.$j];
                  			}
                  			//passage en champ caché lorsque la page s'appelle elle même
                  			//noms saisis page precedente, on parcours l'array
                  			for($j=1; $j<=sizeof($array_noms);$j++)
                  			{	
                  				echo"<input type='hidden' name='tb_Noeud".$j."' value='".$array_noms[$j]."'>";
                  			}
                  		}
                  ?>
                  		<input type='submit' name="btn_NbrLigne" value='Continuer'>
                  	</form>
                  
                  <?php
                  	if (isset($_POST['btn_NbrLigne']))
                  	{
                  	//$array_noms contient tous les noms des noeuds saisi en page d'interface
                  	//$_POST['tb_NbrNoeud'] contient le nombre de noeuds
                  	//$_POST['tb_NbrLigne'] contient le nombre de lignes
                  		echo "N°";
                  		for($j=1; $j<=sizeof($array_noms);$j++)
                  		{	
                  			echo $array_noms[$j]." "	;
                  		}
                  		echo "</br>";
                  		for ($i =1; $i <=$_POST['tb_NbrLigne'];$i++)
                  		{
                  			if ($i < 10)
                  			{
                  				echo '0'.$i." : ";
                  				for($j=1; $j<=sizeof($array_noms);$j++)
                  				{	
                  					echo '<input type="text" name="tb_'.$array_noms[$j].$i.'" value="tb_'.$array_noms[$j].$i.'">';
                  				}
                  				
                  				echo "</br>";
                  			}
                  			else
                  			{
                  				echo $i." : ";
                  				for($j=1; $j<=sizeof($array_noms);$j++)
                  				{	
                  					echo '<input type="text" name="tb_'.$array_noms[$j].$i.'" value="tb_'.$array_noms[$j].$i.'">';
                  				}
                  				echo "</br>";
                  			}
                  		}
                  		echo '<input type="submit" name="btn_FormXml" value="Former Xml">';
                  	}
                  
                  ?>
                  
                  </html>
                  
                  <?php
                  	//entre dedans lorsque l'on clique sur le bouton envoyer
                  	if(isset($_POST['btn_FormXml']))
                  	{
                  		echo "boutton marche";
                  		// ecriture du fichier xml
                  		$xml = "<"."?xml version=\"1.0\"?".">\n";
                  		$xml .= "<contenu>\n";
                  		// pour i allant de 0 à la valeur renseigné
                  		for($i = 0; $i <= $_POST['tb_NbrLigne']; $i++)
                  		{
                  			//ecriture dans le xml du nombre de lignes correspondantes
                  			$xml .= ' <pic '.$array_noms[$j].'="'.$_POST["tb_'.$array_noms[$j].$i.'"].'"/>'."\n";
                  		}
                  			//ecriture dans le xml une fois toutes les lignes écrites
                  			$xml .= '</contenu>';
                  			
                  			//encodage pour être lut pas flash
                  			$xml = utf8_encode($xml);
                  		
                  		//si des données contenus dans $xml ont été écrites dans le fichier pic.txt
                  		if(file_put_contents('pic.txt', $xml))
                  		{
                  			//marche
                  			echo 'Le fichier XML a etait créé <a href="pic.txt">Voir code généré.</a>';
                  		}
                  		else
                  		{
                  			//message d'erreur
                  			echo "Erreur!";
                  		}
                  	}
                  	else
                  	{
                  		echo "boutton marche pas";
                  				// ecriture du fichier xml
                  		$xml = "<"."?xml version=\"1.0\"?".">\n";
                  		$xml .= "<contenu>\n";
                  		// pour i allant de 1 à la valeur renseigné
                  		for($i = 1; $i <= $_POST['tb_NbrLigne']; $i++)
                  		{
                  			//ecriture dans le xml du nombre de lignes correspondantes
                  			$xml .= ' <pic '.$array_noms[$i].'="'.$_POST["tb_'.$array_noms[$j].$i.'"].'"/>'."\n";
                  		}
                  			//ecriture dans le xml une fois toutes les lignes écrites
                  			$xml .= '</contenu>';
                  			
                  			//encodage pour être lut pas flash
                  			$xml = utf8_encode($xml);
                  		
                  		//si des données contenus dans $xml ont été écrites dans le fichier pic.txt
                  		if(file_put_contents('pic.txt', $xml))
                  		{
                  			//marche
                  			echo 'Le fichier XML à été crée <a href="pic.txt">Voir code généré.</a>';
                  		}
                  		else
                  		{
                  			//message d'erreur
                  			echo "Erreur!";
                  		}
                  	}
                  ?>


                  c'est pas encore ça ^^
                  0
                  1. j'avoue j'ai un peu de mal pour ma dernière étape ... je cherche encore, si quelqu'un à une idée, cela m'aiderais bien
                    0
                    1. je suis sur que je ne suis pas loin de la vérité !!!! mdr
                      <html>
                      	<table>
                      		<tr>
                      		<form name="form1 "action="test.php" method="post">
                      			Nombre de lignes à saisir dans le fichier xml :
                      			<input name="tb_NbrLigne" type="text">	
                      			
                      <?php
                      			echo"<input type='hidden' name='tb_NbrNoeud' value='".$_POST['tb_NbrNoeud']."'>";
                      			if(isset($_POST['tb_NbrNoeud']))
                      			{ 
                      				//si on a poste le formulaire TestInterface.php
                      				//init de l'array qui va memoriser les noms saisis dans page precedente
                      				$array_noms=Array();
                      				for ($j = 1; $j<=$_POST['tb_NbrNoeud']; $j++)
                      				{
                      					echo "<td>";
                      					$array_noms[$j]=$_POST['tb_Noeud'.$j];
                      					echo "</td>";
                      				}
                      				//passage en champ caché lorsque la page s'appelle elle même
                      				//noms saisis page precedente, on parcours l'array
                      				for($j=1; $j<=sizeof($array_noms);$j++)
                      				{	
                      					echo "<td>";
                      					echo"<input type='hidden' name='tb_Noeud".$j."' value='".$array_noms[$j]."'>";
                      					echo "</td>";
                      				}
                      			}
                      ?>
                      			<input type='submit' name="btn_NbrLigne" value='Continuer'>
                      		
                      		</tr>
                      		<tr>
                      <?php
                      			if (isset($_POST['btn_NbrLigne']))
                      			{
                      				//$array_noms contient tous les noms des noeuds saisi en page d'interface
                      				//$_POST['tb_NbrNoeud'] contient le nombre de noeuds
                      				//$_POST['tb_NbrLigne'] contient le nombre de lignes						
                      				$j=1;
                      				echo "<tr>";
                      				//saute une colonne
                      				echo "<td></td>";
                      				for($j=1; $j<=sizeof($array_noms);$j++)
                      				{	
                      					echo "<td>";
                      					echo $array_noms[$j];
                      					echo "</td>";
                      				}						
                      				echo "</tr>";
                      				$i = 1;
                      				for ($i =1; $i <=$_POST['tb_NbrLigne'];$i++)
                      				{
                      					if ($i < 10)
                      					{								
                      						echo "<tr>";
                      						echo "<td>";
                      						echo "N°\t";
                      						echo '0'.$i."&nbsp;&nbsp;&nbsp;";
                      						echo "</td>";
                      						for($j=1; $j<=sizeof($array_noms);$j++)
                      						{
                      							echo "<td>";
                      							echo '<input type="text" name="tb_'.$array_noms[$j].$i.'" value="tb_'.$array_noms[$j].$i.'">';
                      							echo "</td>";
                      						}
                      						echo "</tr>";
                      					}
                      					else
                      					{								
                      						echo "<tr>";
                      						echo "<td>";
                      						echo "N°\t";
                      						echo $i."&nbsp;&nbsp;&nbsp;";
                      						echo "</td>";
                      						for($j=1; $j<=sizeof($array_noms);$j++)
                      						{
                      							echo "<td>";
                      							echo '<input type="text" name="tb_'.$array_noms[$j].$i.'" value="tb_'.$array_noms[$j].$i.'">';
                      							echo "</td>";								
                      						}	
                      						echo "</tr>";
                      					}
                      				}
                      				echo "<tr>";
                      				echo "<td colspan=2>";
                      				echo '<input type="submit" name="btn_FormXml" value="Former Xml" >';
                      				echo "</td>";
                      				echo "</tr>";
                      			}
                      
                      ?>
                      		</tr>
                      	</table>
                      <?php
                      		//entre dedans lorsque l'on clique sur le bouton envoyer
                      		if(isset($_POST['btn_FormXml']))
                      		{
                      			echo"<input type='hidden' name='tb_NbrLigne' value='".$_POST['tb_NbrLigne']."'>";
                      			echo"<input type='hidden' name='tb_Noeud".$j."' value='".$array_noms[$j]."'>";
                      			echo '<input type="hidden" name="tb_'.$array_noms[$j].$i.'">';
                      			// ecriture du fichier xml
                      			$xml = "<"."?xml version=\"1.0\"?".">\n";
                      			$xml .= "<contenu>\n";
                      			// pour i allant de 0 à la valeur renseigné
                      			for($i = 0; $i <= $_POST['tb_NbrLigne']; $i++)
                      			{
                      				//ecriture dans le xml du nombre de lignes correspondantes
                      				$xml .= '<pic ';
                      				for($j=1; $j<=sizeof($array_noms);$j++)
                      				{
                      					$xml .= $array_noms[$j]. " = " .$_POST["tb_$array_noms[$j].$i"];
                      				}
                      				$xml .= " />\n";
                      			}
                      				//ecriture dans le xml une fois toutes les lignes écrites
                      				$xml .= '</contenu>';
                      				
                      				//encodage pour être lut pas flash
                      				$xml = utf8_encode($xml);
                      			
                      			//si des données contenus dans $xml ont été écrites dans le fichier pic.txt
                      			if(file_put_contents('pic.txt', $xml))
                      			{
                      				//marche
                      				echo 'Le fichier XML à été créé <a href="pic.txt">Voir code généré.</a>';
                      			}
                      			else
                      			{
                      				//message d'erreur
                      				echo "Erreur!";
                      			}
                      		}
                      		else
                      		{
                      		}
                      ?>
                      	</form>
                      </html>
                      
                      
                      0
                      1. oui tu n'est pas loin mais dans ces lignes 102 103:

                        echo"<input type='hidden' name='tb_Noeud".$j."' value='".$array_noms[$j]."'>";
                        echo '<input type="hidden" name="tb_'.$array_noms[$j].$i.'">';


                        d'où sort le $j ?

                        c'est une variable d'une boucle et toi à cette endroit là tu n'est pas dans une boucle
                        0
                        1. effectivement ... je pense que je devrais boucler pour inclure tous les contenus des TB non ?

                          n'empêche Alain tu est mon sauveur lol
                          0
                          1. je n'ai pas eu trop le temps de regarder mais ça devrait mieux aller
                            0
                            1. en fait pas vraiment ... je ne sais pas trop comment m'y prendre

                              	for($j=1; $j<=sizeof($array_noms);$j++)
                              			{
                              				echo"<input type='hidden' name='tb_Noeud".$j."' value='".$array_noms[$j]."'>";
                              				echo '<input type="hidden" name="tb_'.$array_noms[$j].$i.'">';
                              				$array_Name[$j] = $_POST["tb_$array_noms[$j].$i"];
                              			}
                              			// ecriture du fichier xml
                              			$xml = "<"."?xml version=\"1.0\"?".">\n";
                              			$xml .= "<contenu>\n";
                              			// pour i allant de 0 à la valeur renseigné
                              			for($i = 0; $i <= $_POST['tb_NbrLigne']; $i++)
                              			{
                              				//ecriture dans le xml du nombre de lignes correspondantes
                              				$xml .= '<pic ';
                              				for($j=1; $j<=sizeof($array_noms);$j++)
                              				{
                              					$xml .= $array_noms[$j]. " = " .$array_Name[$j];
                              				}
                              				$xml .= " />\n";
                              			}


                              logiquement tu as le $i qui devrais boucler également non ?
                              0
                              1. sans parler que maintenant j'ai tout mis dans le même form et j'ai l'impression que je ne comprend plus rien à mon propre code ...
                                0
                                1. dans cette ligne notament :

                                  echo '<input type="hidden" name="tb_'.$array_noms[$j].$i.'">'


                                  pourquoi mets tu $array_noms[$j].$i le $i de la fin est en trop dans ton array tu as déja les noms avec l'indice
                                  0
                                  1. J'ai enfin réussi à terminer ce que j'avais en tête.

                                    Merci beaucoup Alain, sans toi je dois bien avouer que je ne serais pas arriver très loin, je t'en remercie du fond du coeur.

                                    Tu veux voir le résultat ?

                                    Je vais encore essayer de le faire en javascript pourquoi pas et surtout l'adapter en objet.
                                    0