Hallo ihr zwei!
use CGI;
$query = new CGI;
$font = "font face=arial color=#000080 size=";
$td1 = "<td>";
$td1_ende = "</td>";der td- tag #wird als Variable festgehalten
der end- td- tag wird als Variable festgehalten
Wozu ? Da ändert sich doch nix. "Variablen" sind wie der Name schon sagt dazu da, um wechselnde Inhalte aufzunehmen. IMHO ist es auch kürzer <td> und </td> zu schreiben als $td1 und $td1_ende ;-)
Stell dir mal vor es wären 20 Spalten würdest du da echt $td1 - $td20 anlegen ?
$zahl = $query->param('zahl');
if ($zahl == 1)
{
$td2 = ""; $td2_ende = ""; $inhalt_spalte_2 = "";
$td3 = ""; $td3_ende = ""; $inhalt_spalte_3 = "";
$td4 = ""; $td4_ende = ""; $inhalt_spalte_4 = "";
} elseif ($zahl == 2) ....
Mein Vorschlag: Spalten-Text in einem Array speichern und in einer Schleife ausgeben:
for ($i=0; $i<zahl; $i++) { print "<td>$spalten[$i]</td>"; }
Ist doch schlank und rank oder ;-)
print <<html_ende;
<HTML>
[...]
<table border=1 cellspacing=0 cellpadding=8 bordercolor=#000080>
<tr><!--Einsetzen der tag- variablen je nach auswahl der anzahl-->
»» $td1<$font 2>$inhalt_spalte_1$td1_ende
»» $td2<$font 2>$inhalt_spalte_2$td2_ende
»» $td3<$font 2>$inhalt_spalte_3$td3_ende
»» $td4<$font 2>$inhalt_spalte_4$td4_ende
</tr>
Wenn du print <<html_ende schreibst, wird ALLES 1:1 auf dem Schirm ausgegeben, auch '$td1' bleibt am Schirm '$td1', nicht etwa '<td>' :-(
Wenn du den Wert von Varaiblen ausgeben willst musst du schon Zeile für Zeile ausgeben.
Nebenbei: Auch wenn $inhalt_spalte_4 leer ist, und auch keine Tags angezeigt werden, so steht immerhin <font 2> drinnen. Was auch immer das zu bedeuten hat? Ich nehme ma an es soll <font size="2"> heissen ;-)
Falls ja, dann brauchst du aber auch ein </font>!
schöne Grüsse
Bernhard