Frank Porst: Javascript in PHP: dynamische Tabellenausgabe

Beitrag lesen

Hallo,

Für Meldungen habe ich die Ausgabe der immer gleichen Tabellengerüste in eine eigene Datei ausgelagert, nur die einzelnen Inhalte variieren:

+------+-------------+
|Status|Kurze Meldung|
+------+-------------+
|Ausführliche Meldung|
+--------------------+

In PHP sieht die obig skizzierte Tabelle (vereinfacht) so aus:

echo '<table border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td>
            <table border="0" cellpadding="0" cellspacing="0">
              <div id="Breite_festlegen">
                <tr>
                  <td ...>Status</td>
                  <td ...>Kurze Meldung</td>
                </tr>
              </div>
              <tr>
                <td colspan="3">Ausführliche Meldung</td>
              </tr>
            </table>
          </td>
        </tr>
      </table>';

Nun stehe ich vor dem Problem, dass ich u.U. auch längere Texte ausgebe, die dann die gesamte Tabelle in die Breite strecken, was sehr unschön aussieht.

Mein Vorhaben geht in die Richtung, dass die Zelle, die die ausführliche Meldung beeinhaltet, genau so breit ist der Div-Bereich, in dem der Status und die kurze Meldung ausgegeben werden.

Mein Ansatz sieht folgendermassen aus:

echo '<table border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td>
            <table border="0" cellpadding="0" cellspacing="0">
              <div id="Breite_festlegen">
                <tr>
                  <td ...>Status</td>
                  <td ...>Kurze Meldung</td>
                </tr>
              </div>
              <tr>
                <script language="javascript" type="text/javascript"
                  <!--
                    document.write ('<td colspan="3" width="' +
                    document.all.Breite_festlegen.offsetWidth + '">
                    Ausführliche Meldung</td>');
                  //-->
                </script>
              </tr>
            </table>
          </td>
        </tr>
      </table>';

Leider funktioniert die Bildschirmausgabe hier nicht wie beabsichtigt. Wenn ich mir den Quelltext ansehe, dann ist der Javascript-Code, samt dem anzuzeigenden Text einzusehen.

Liegt das Problem u.U. in einer falschen Maskierung ?
Wenn nicht, was habe ich falsch gemacht ?

Vielen Dank für Eure Antworten.

Gruss, Enrico