[PHP] Tableau dynamique paramétrable [Résolu/Fermé]

Signaler
Messages postés
7
Date d'inscription
jeudi 8 juillet 2004
Statut
Membre
Dernière intervention
16 mai 2006
-
 Alain42 -
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" ;-)

5 réponses

Messages postés
1771
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
601
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
7
Date d'inscription
jeudi 8 juillet 2004
Statut
Membre
Dernière intervention
16 mai 2006
1
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 !
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 !
Messages postés
1
Date d'inscription
mardi 24 juillet 2007
Statut
Membre
Dernière intervention
24 juillet 2007

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
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 ?