Bernhard Peissl: Formular

Beitrag lesen

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