Tableau dynamique simple sans mysql + création d'1 .php + feuille css en 4 étapes (200 lignes)

Soyez le premier à donner votre avis sur cette source.

Vue 17 282 fois - Téléchargée 1 344 fois

Description

Ce code permet de créer un tableau dynamique en fonction de 2 paramètres et en 4 étapes.

étape 1 : nb de colonne, nb de ligne (compter l'entete de tableau)
étape 2 : matrice d'insertion des champs
étape 3 : création du tableau final
étape 4 : visualiser votre travail (tableau.php est prés à être inclut ds vos pages).

J'ai bricolé, je dis bien "bricolé" ce code pour que ça marche, et c'est le cas chez moi ;) . Désolé pour les puristes mais je n'ai aucun critère de clarté ni de performance technique. Alors ceux qui se retrouveront dans mon style brouillon : très bien. Pour les autres tant pis :)

TODO :
-- modification du tableau créé
-- faire une version avec prise en charge MySQL (BD) (voir les commentaires dans le zip directement dans la source)

Source / Exemple :


<?
$etape = $_REQUEST[etape];
if ($etape == "") { $etape=0; }
$nb_colonnes = $_REQUEST[nb_colonnes];
$nb_lignes = $_REQUEST[nb_lignes];
?>

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=windows-1252">
<TITLE>Prix</TITLE>
<link rel="stylesheet" href="style.css" type="text/css">
</HEAD>
<BODY>
<div align="left">  <br>
  <br>
  <table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
      <td width="5" ><img src="images/rond-hg-24.gif" width="5" height="24"></td>
      <td colspan="3" valign="middle" background="images/rond-h-24.gif">&nbsp;</td>
      <td width="5"><img src="images/rond-hd-24.gif" width="5" height="24"></td>
    </tr>
    <tr>
      <td background="images/rond-g.gif">&nbsp;</td>
      <td width="36" bgcolor="#FFFFFF"><div align="center"><font face="Arial, Helvetica, sans-serif" size="4"><b><font face="Arial, Helvetica, sans-serif" size="4"><b><font color="#99CCCC"><img src="images/ico_variable.gif" width="35" height="36"></font></b></font></b></font></div>
      </td>
      <td width="801" bgcolor="#FFFFFF"><div align="center"><font face="Arial, Helvetica, sans-serif" size="4"><b><font color="#99CCCC">Fiche
                de saisie des prix : </font><font color="#99CCCC" size="4" face="Arial, Helvetica, sans-serif"><b>Etape <font color="#CC0066" size="5"><? echo $etape+1;?></font>/4</b></font></b></font></div>
      </td>
      <td width="37" bgcolor="#FFFFFF"><font face="Arial, Helvetica, sans-serif" size="4"><b><font face="Arial, Helvetica, sans-serif" size="4"><b><font color="#99CCCC"><img src="images/rien.gif" width="36" height="34"></font></b></font></b></font></td>
      <td background="images/rond-d.gif">&nbsp;</td>
    </tr>
    <tr>
      <td width="5" height="5"><img src="images/rond-bg.gif" width="5" height="5"></td>
      <td height="5" colspan="3" background="images/rond-b.gif"> </td>
      <td width="5" height="5"><img src="images/rond-bd.gif" width="5" height="5"></td>
    </tr>
    <tr>
      <td width="5" height="5"><img src="images/rond-hg-5.gif" width="5" height="5"></td>
      <td height="5" colspan="3" bgcolor="#FFFFFF"></td>
      <td width="5" height="5"><img src="images/rond-hd-5.gif" width="5" height="5"></td>
    </tr>
    <tr>
      <td width="5" height="5" background="images/rond-g.gif">&nbsp;</td>
      <td colspan="3" bgcolor="#FFFFFF">
        <? switch ($etape) {
    case 0:
	// paramêtre du tableau
echo        "<form name=\"form1\" method=\"post\" action=\"prix.php\">
          Nb. colonnes
            <input name=\"nb_colonnes\" type=\"text\" value=\"\" size=\"4\">
            <input name=\"etape\" type=\"hidden\" value=\"1\" size=\"4\">
          <br>
          Nb. lignes
          <input name=\"nb_lignes\" type=\"text\" value=\"\" size=\"4\">
          <br>
          <input type=\"submit\" name=\"Submit\" value=\"Envoyer\">
                        </form>";
        break;
    case 1:
	
	// construction du tableau

$compteur = 0;
echo "Saisissez vos données dans les champs numérotés.<br>";
echo "<form name=\"form1\" method=\"post\" action=\"prix.php\"><table>";
echo "<input name=\"nb_colonnes\" type=\"hidden\" value=\"".$nb_colonnes." size=\"4\">";
echo "<input name=\"nb_lignes\" type=\"hidden\" value=\"".$nb_lignes." size=\"4\">";
for ($i=1;$i<=$nb_lignes;$i++)
{

        echo "<tr>";
		 for ($j=1;$j<=$nb_colonnes;$j++)
{
//$compteur = $i+$j;
$str = "<input type=text onClick=\"javscript:this.value='';\" name=occ".$compteur." value=".$compteur.">";
echo "<td>".$str."</td>";
$compteur++;
}

		echo "</tr>";
   
}
echo "</table>";
echo "<input type=hidden name=etape value=2>";
echo "<input type=submit value=Envoyer></form>";

        break;
    case 2:
	echo "Construction en cours...<br>";
	// remplissage du tableau
   		 for ($l=0;$l<=($nb_lignes*$nb_colonnes);$l++)
{

$valeur = occ.$l;
$occ[$l] = $_REQUEST[$valeur];

}

   
$construct = '';
$fp = fopen("tableau.php","r+");
$start = '';

/*while (!feof($fp)) {
 $buffer = fgets($fp, 4096);
 $start=$start.$buffer;
 } */
 
$compteur2 = 0;
$compteur3 = 1;
$construct = "<form name=\"form1\" method=\"post\" action=\"prix.php\"><table>";
for ($m=1;$m<=$nb_lignes;$m++)
{

 $construct = $construct."<tr>";
for ($n=1;$n<=$nb_colonnes;$n++)
{
if (($compteur2<$nb_colonnes) or ($compteur3 == 1)) { $td = "<td class=\"tete\">";} else { $td="<td>"; }
$construct = $construct.$td.$occ[$compteur2]."</td>";
$compteur2++;
 $compteur3++;
}
 $compteur3 = 1;
}
$construct = $construct."</table></form>";
fseek($fp,0);
fputs($fp,$construct);
fclose($fp);

echo "Construction réussi : <a href='prix.php?etape=3'>passer à la suite...</a><br>";
   		
        break;
    case 3:
	// affichage du tableau
        include("tableau.php");
		echo "voilà c'est fini, reste plus qu'à inclure le tableau avec <i>include(\"tableau\");</i>";
        break;
}
?>
      </td>
      <td height="5" background="images/rond-d.gif">&nbsp;</td>
    </tr>
    <tr>
      <td height="5"><img src="images/rond-bg.gif" width="5" height="5"></td>
      <td height="5" colspan="3" background="images/rond-b.gif"></td>
      <td height="5"><img src="images/rond-bd.gif" width="5" height="5"></td>
    </tr>
  </table>
  <br>
</div>
</BODY>
</HTML>

Conclusion :


Je suis parfaitement conscient que cela peut être optimisé alors si qq'un à ça sous le coude, je remplacerais cette source.

Voilà, c'était ma petite contribution car je m'inspire bcp de ce site.

Pitié, soyez indulgent, je ne fais du PHP que depuis qq semaines.
J'espère que ça servira à d'autres...

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_minta Messages postés 31 Date d'inscription samedi 1 février 2003 Statut Membre Dernière intervention 1 mai 2022
14 déc. 2005 à 06:05
Ceci aux administrateurs du forum , il m'est impossible de télécharger quoique ce soit sur votre site. Puis-je avoir une explication? Suis-je le seul dans cette situation?
webdesignasp Messages postés 29 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 19 avril 2005
18 mars 2004 à 14:19
Une erreur s'est glissée à l'étape 4, il est noté "voilà c'est fini, reste plus qu'à inclure le tableau avec include("tableau");"

il faut bien entendu comprendre : "voilà c'est fini, reste plus qu'à inclure le tableau avec include("tableau.php");"

(Cette erreur est également visible sur la capture).

Ce problème ne change en rien la fonctionnalité du code.
webdesignasp Messages postés 29 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 19 avril 2005
18 mars 2004 à 13:59
J'ai laissé la version commenté pour ceux qui se lancerait dans la version MySQL, sans ces commentaires et tout le reste autour le code est très léger et très simple aussi.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.