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

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

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.