[PHP] Tableau dynamique paramétrable

Résolu/Fermé
GreggBazin Messages postés 7 Date d'inscription jeudi 8 juillet 2004 Statut Membre Dernière intervention 16 mai 2006 - 16 mai 2006 à 12:41
 Alain42 - 24 juil. 2007 à 17:28
Bonjour à tous,

je débute dans le PHP et j'ai un problème qui pour vous ne doit pas être bien hallucinant donc après avoir fait plusieurs recherches je me lance :-)

Je voudrais pouvoir créer dynamiquement un tableau où l'administrateur décide du nombre de colonne et de lignes, puis entre lui même les titres des colonnes et des lignes, puis ensuite le contenu des cases.
Par exemple, imaginez un tableau de prix avec les dates en titre de colonnes, les options en titre de lignes et les prix dnas chaque case...

Ma solution serait de faire 3 pages.
1. on demande le nombre de colonnes et de lignes;
2. on crée un tableau avec les paramètres demandés, grâce à une boucle for() contenant dans chaque case une case de texte à remplir, puis un bouton 'Envoyer' pour valider le contenu et la forme du tableau;
3. on traite les infos données par le formulaire du 2. et on génère le tableau demandée toujours grâce à for().

Or je bloque à l'étape 2 avec la boucle for() et l'imbriquage des TR et TD...

J'ai un peu honte car je pensais plus en galérer vers l'étape 3 ;-)

Merci d'avance pour votre aide.

Gregg

PS : J'ai biensur essayer d'éplucher au max les "Discussions Similaires" ;-)
A voir également:

5 réponses

PhP Messages postés 1767 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
16 mai 2006 à 15:00
Bjr

Voici un exemple de code PHP qui génère un tableau de taille paramètrable :


<html>
<body>
<?php

function generer_tableau($col,$lig)
{
	$cr = "\n";
	// Initialise un nouveau tableau avec le code HTML requis : balise <table>
	$tableau = '<table border="1">'.$cr;
	for ($l = 0; $l < $lig ; $l++)
	{
		// Initialise une nouvelle ligne avec le code HTML requis : balise <tr>
		$ligne = '<tr>';
		for ($c = 0; $c < $col ; $c++)
		{
			// Ajoute la colonne dans la ligne avec le code HTML requis : balise <td> .... </td>
			$ligne .= '<td>Lig '.$l.'-Col '.$c.'</td>';
		}
		// Ferme la ligne avec le code HTML requis : balise </tr>
		$ligne .= '</tr>'.$cr;

		// Ajoute la ligne au tableau
		$tableau .= $ligne;		
	}
	// Ferme le tableau avec le code HTML requis : balise </table>
	$tableau .= '</table>'.$cr;
	
	return $tableau;	
}

// Récuperer le code HTML du tableau dans une variable
$tableau = generer_tableau(10,20);

// Afficher ce tableau ce qui l'ajoute à la page
echo $tableau;

?>
</body>
</html>

Je pense avoir mis suffisamment d'explications.

Le fonction generer_tableau() attend en paramètres le nombre de colonnes et le nombre de lignes
Elle retourne une chaîne contenant le code HTML nécessaire au tableau.

Nota :

Ecrire

  $ligne .= '</tr>'.$cr;   (attention au point devant le signe égal )


Revient au même que 

  $ligne = $ligne.'</tr>'.$cr;     (plus de point devant = !!!) 


$cr : permet d'ajouter des sauts de lignes dans le code pour le rendre plus propre lorsque tu visualises le code source de la page : il ne sert pas au code HTML proprement dit.




4
GreggBazin Messages postés 7 Date d'inscription jeudi 8 juillet 2004 Statut Membre Dernière intervention 16 mai 2006 1
16 mai 2006 à 15:45
Excellent !!!!!!!!!!! Merci à toi, j'hallucine comme ça paraît simple quand on a le code sous les yeux ;-))

Et promis je persévère pour pouvoir coder très prochainement tout seul ;-)

Bonne continuation et merci encore !
0
Re-bonjour, I'm back ;-)

Voilà en fait concernant ce tableau je voudrais savoir comment passer un paramètre PHP dans la ligne suivante :
$ligne .= '<td>Lig '.$l.'-Col '.$c.'</td>';

Car dans ma table j'ai les infos Lig1-Col1, Lig1-Col2, Lig2-Col1, etc... et donc je voudrais pouvoir faire un truc de ce genre :
<?php
// Affichage des articles
$retour = mysql_query('SELECT * FROM bali_hotels1 ORDER BY id');
while ($donnees = mysql_fetch_array($retour))
{
?>
...
<?php
...
$ligne .= '<td>$donnees['Lig '.$l.'-Col '.$c.'']</td>';
...
?>

Mais ça n'a pas trop l'air de marcher.... Message : Parse Error

Merci pour votre aide !
0
estebanino Messages postés 1 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 24 juillet 2007
24 juil. 2007 à 16:44
bonjour tout le monde!!

jai un soucis et je suis en speed dans mon stage j'ai besoin de vous
ca fait 2 jours entiers que j'apprend vba et je m'heurte a un peti soucis....


il faut créer un tableau dynamique qui puisse s'actualiser en fonction des sources que j'ai dans mon classeur
en fait jai créer une saisie pour lutilisateur qui choisit alors les fichiers a étudiés

et jaimerais que mon tableau s'actualise si je change les sources et il me lache dès que j'essaye....

merci d'avance car je sais ke pour vous c un jeu denfant.....

merci a tous
0

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

Posez votre question
dans ma table j'ai les infos Lig1-Col1, Lig1-Col2, Lig2-Col1, etc...

Cela veut dire que Lig1-Col1 etc sont les noms des champs de ta table ou les infos contenues dans ta table.

Si nom des champs, essaye

$champ={"Lig".$l."Col".$c};

$ligne .= '<td>$donnees[$champ]</td>';


Mais comment incrémentes tu tes varaibles $l et $c ?
0