Ich bastel gerade an etwas, wo ich eine HTML-Tabelle im PHP-Code erzeuge und dann per Template-Variable anzeigen lasse.
Das funktionert soweit auch wie gewünscht,
aber sobald ich den Tabellencode nicht direkt per Template-Variable in den Quelltext setze, sondern den Code per Javascript durch ein OnClick in ein Element per innerHTML einfügen möchte, werden Zeilenumbrüche nicht angezeigt.
Mein Code sieht folgendermaßen aus:
Code: Alles auswählen
$table = "<table class='test_table' width='500' height='160' style='min-width:500px; max-width:500px; min-height:160px; max-height: 160px;'>
<tr height='30' tyle='min-height:30px; max-height:30px;'>
<th class='test_title' align='center' colspan='3'>
" . $test['name'] . "
</th>
</tr>
<tr height='40' style='min-height:40px; max-height:40px;'>
<td align='center' width='60' style='min-width:60px; max-width:60px;'>
<img src='" . $phpbb_root_path . "images/tests/" . $test['image'] . "' alt='" . $test['name'] . "' />
</td>
<td class='test_text' width='390' style='min-width:390px; max-width:390px;'>
" . $test['text'] . "
</td>
<td class='test_points' align='center' width='50' style='min-width:50px; max-width:50px;'>
" . $test['points'] . "
</td>
</tr>
<tr height='20' style='min-height:20px; max-height:20px;'>
<td align='center' colspan='3'>" . $rank . "</td>
</tr>
<tr height='10' style='min-height:10px; max-height:10px;'>
<td align='left' colspan='3'><p class='test_count'>" . $test['count'] . "</p></td>
</tr>
<tr height='10' style='min-height:10px; max-height:10px;'>
<td align='right' colspan='3'><p class='test_date'>" . date("d.m.Y H:i",$test['time']) . "</p></td>
</tr>
</table>";
// Ersetze alle Enters
$table = preg_replace("/\r|\n/s", "", $table);
Code: Alles auswählen
" . $test['text'] . "
Wenn ich es allerdings mit folgendem Code setze,
Code: Alles auswählen
function setHTMLCode(elementID)
{
var target = document.getElementById('zielElement');
var html = "";
switch(elementID)
{
<!-- BEGIN elements -->
case {elements.ID}:
html = "{elements.HTML_TABLE}";
break;
<!-- BEGINELSE -->
default:
html = "Ist leer.";
break;
<!-- END -->
}
target.innerHTML = html;
}
Sonst funktioniert der Code allerdings tadellos.
Kann mir jemand verraten, woran das liegt?
Oder wie ich das ändern kann?
Direkte <br /> möchte ich nur ungern einfügen, der Text wird aus der Datenbank ausgelesen und ich müsste ihn dann entsprechend dort anpassen, was unsauber ist, da ich ihn auch woanders verwende und es in der normalen Tabelle auch geht.