gleiche Select-Boxen vereinfachen
Erich
- html
0 serusX6240 Gunnar Bittersmann
0 ChrisB0 Erich0 EKKi
Hallo
Ich hab eine Tabelle in der sich in jeder Zeile eine Selektbox befindet. Die Selectboxen haben alle den gleichen Wert. Da jetzt der Quellcode sehr lang wird, hätte ich gerne gewusst, ob es eine Möglichkeit gibt, die Selektbox einmal zu definieren und dann an jeder Stelle der Tabelle einzusetzen.
Hier der Code:
<table>
<tr>
<td>
<select name="top1" size="1">
<option>Heino</option>
<option>Michael Jackson</option>
<option>Tom Waits</option>
<option>Nina Hagen</option>
<option>Marianne Rosenberg</option>
</select>
</td>
</tr>
<tr>
<td>
<select name="top2" size="1">
<option>Heino</option>
<option>Michael Jackson</option>
<option>Tom Waits</option>
<option>Nina Hagen</option>
<option>Marianne Rosenberg</option>
</select>
</td>
</tr>
<tr>
<td>
<select name="top3" size="1">
<option>Heino</option>
<option>Michael Jackson</option>
<option>Tom Waits</option>
<option>Nina Hagen</option>
<option>Marianne Rosenberg</option>
</select>
</td>
</tr>
<table>
Hier der "Möchtegern" Code:
define OPT = <option>Heino</option>
<option>Michael Jackson</option>
<option>Tom Waits</option>
<option>Nina Hagen</option>
<option>Marianne Rosenberg</option>;
<table>
<tr>
<td>
<select name="top1" size="1">
OPT
</select>
</td>
</tr>
<tr>
<td>
<select name="top2" size="1">
OPT
</select>
</td>
</tr>
<tr>
<td>
<select name="top3" size="1">
OPT
</select>
</td>
</tr>
<table>
Also ,
mit PHP kein Problem ->
<?
function create_select($sel_name)
{
$select= "<select name=\"".$sel_name."\" size=\"1\">
<option>Heino</option>
<option>Michael Jackson</option>
<option>Tom Waits</option>
<option>Nina Hagen</option>
<option>Marianne Rosenberg</option>
</select>";
return $select;
}
?>
Html Teil ->
<table>
<tr>
<td>
<?=create_select("top1")?>
</td>
</tr>
<tr>
<td>
<?=create_select("top2")?>
</td>
</tr>
</table>
Grüße Robin
@@serusX624:
nuqneH
<?
Short-Tags würde ich nicht empfehlen, sondern: <?php
<?=create_select("top1")?>
Hier dann <?php [code lang=php]echo create_select("top1");
?>[/code]
Qapla'
@@serusX624:
nuqneH
<?
Short-Tags würde ich nicht empfehlen, sondern:
<?php
<?=create_select("top1")?>
Hier dann
<?php [code lang=php]echo create_select("top1");
?>[/code]Qapla'
@Gunnar
warum was spricht dagegen ?
Mit freundlichen Grüßen
Robin
Mahlzeit serusX624,
warum was spricht dagegen ?
Erst einmal, dass TOFU nicht hier nicht wirklich gern gesehen ist.
Außerdem kann es zu Problemen kommen, wenn Du z.B. XHTML-Dokumente als XML parsen und ausliefern lässt (da der XML-Prolog auch mit <? beginnt).
Und zu guter Letzt sind short_open_tags bei einer vernünftigen PHP-Installation sowieso ausgeschaltet.
MfG,
EKKi
@@EKKi:
nuqneH
Erst einmal, dass TOFU nicht hier nicht wirklich gern gesehen ist.
FOTU auch nicht. ;-)
(da der XML-Prolog auch mit <? beginnt).
Nicht unbedingt.
Der XML-Prolog [XML10 §2.8] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
beginnt nicht mit "<?".
Qapla'
@@Erich:
nuqneH
Ich hab eine Tabelle in der sich in jeder Zeile eine Selektbox befindet. Die Selectboxen haben alle den gleichen Wert. Da jetzt der Quellcode sehr lang wird, hätte ich gerne gewusst, ob es eine Möglichkeit gibt, die Selektbox einmal zu definieren und dann an jeder Stelle der Tabelle einzusetzen.
Ja, gibt es. Nicht mit HTML, aber mit einer serverseitigen Technik deiner Wahl (SSI, PHP, …). Siehe FAQ.
<select name="top1" size="1">
OPT
</select>
Ich würde es aber so machen, dass die Erzeugung von Start- und Endtag des 'select'-Elements auch mit ausgelagert wird. Der veränderliche Wert von @name wäre dann jeweils als Parameter zu übergeben:
<tr>
<td>
OPT("top1")
</td>
</tr>
<tr>
<td>
OPT("top2")
</td>
</tr>
<tr>
<td>
OPT("top3")
</td>
</tr>
Qapla'
Hi,
Ich hab eine Tabelle in der sich in jeder Zeile eine Selektbox befindet. Die Selectboxen haben alle den gleichen Wert.
Darf man fragen, warum …?
MfG ChrisB
Danke für die Antworten!
Das Problem mit PHP ist, dass der Quellcode dann wieder ewig lang wird... und genau das ist mein Problem. Ich hab eine Menge an Select-Boxen und das Laden bzw. Anzeigen am Browser dauert ewig. Wenn ich das mit PHP mache, hab ich da keein Vorteil.
Kann man sowas auch mit Javascript machen?
Mahlzeit Erich,
Das Problem mit PHP ist, dass der Quellcode dann wieder ewig lang wird...
Tut mir leid, aber diese Argumentation kann ich nicht nachvollziehen. Warum sollte das so sein?
Ich hab eine Menge an Select-Boxen und das Laden bzw. Anzeigen am Browser dauert ewig.
Definiere "ewig". Von wievielen sprechen wir genau? Wenn der Browser lange für das Rendern und die Anzeige benötigt, kann das viele Ursachen haben. Hast Du Deinen Code bereits auf Validität überprüft?
Wenn ich das mit PHP mache, hab ich da keein Vorteil.
Doch - Du musst weniger (redundanten) HTML-Code notieren.
Kann man sowas auch mit Javascript machen?
Wenn der Browser offenbar jetzt schon Probleme mit der schnellen Anzeige Deiner Seite hat - warum willst Du ihm dann noch weitere Arbeit (in Form von Client-seitiger Manipulation des DOM ... denn das hieße "sowas [...] mit Javascript machen") aufbürden?
MfG,
EKKi