[PHP] Tableau de n lignes et n colones

Résolu/Fermé
kawa67 Messages postés 46 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 2 juin 2009 - 14 janv. 2009 à 11:42
kawa67 Messages postés 46 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 2 juin 2009 - 21 janv. 2009 à 14:47
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

19 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
14 janv. 2009 à 14:03
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
14 janv. 2009 à 14:06
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
kawa67 Messages postés 46 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 2 juin 2009 1
14 janv. 2009 à 14:11
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
14 janv. 2009 à 14:41
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
14 janv. 2009 à 17:19
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
kawa67 Messages postés 46 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 2 juin 2009 1
15 janv. 2009 à 14:43
je te remercie de ta réponse, je pense avoir compris un peu comment faire, mais je n'y arrive pas ...
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
15 janv. 2009 à 14:46
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
kawa67 Messages postés 46 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 2 juin 2009 1
15 janv. 2009 à 15:05
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
kawa67 Messages postés 46 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 2 juin 2009 1
15 janv. 2009 à 15:14
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
kawa67 Messages postés 46 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 2 juin 2009 1
15 janv. 2009 à 16:17
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
15 janv. 2009 à 17:14
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
kawa67 Messages postés 46 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 2 juin 2009 1
16 janv. 2009 à 08:20
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
kawa67 Messages postés 46 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 2 juin 2009 1
17 janv. 2009 à 16:37
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
kawa67 Messages postés 46 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 2 juin 2009 1
19 janv. 2009 à 09:57
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 janv. 2009 à 13:29
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
kawa67 Messages postés 46 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 2 juin 2009 1
19 janv. 2009 à 14:13
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 janv. 2009 à 14:21
je n'ai pas eu trop le temps de regarder mais ça devrait mieux aller
0
kawa67 Messages postés 46 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 2 juin 2009 1
19 janv. 2009 à 14:47
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
kawa67 Messages postés 46 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 2 juin 2009 1
19 janv. 2009 à 15:31
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 janv. 2009 à 16:52
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
kawa67 Messages postés 46 Date d'inscription lundi 19 mai 2008 Statut Membre Dernière intervention 2 juin 2009 1
21 janv. 2009 à 14:47
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