Sebastian Becker: Dropdown-Menu - Variablenproblem

Hallo,

ein Dropdown-Menüs soll (in der endgültigen Version aus einer externen .js-Datei) aus den Inhalten einer Datenbank automatisch erzeugt und auf mehreren Seiten ausgelesen werden.

Die einzelnen Auswahlfelder sind den Kategorien "kultur", "gastro"  und "shopping" zugewiesen. Anfangs sollen alle Kategorien im Menü angezeigt werden. Beim Anklicken einer Grafik sollen dann nur noch die einzelnen Kategorien angezeigt werden. Es soll aber eigentlich auch möglich sein, ein Auswahlfeld mehreren Kategorien zuzuordnen.

Das bisherige Skript übernimmt nun leider nicht die Variablenänderungen und auch für die Zuordnung zu mehreren Kategorien habe ich noch keine Lösung gefunden (evtl. mit "indexof"?).

Die Krönung der Programmierkunst wäre es, wenn zudem überprüft würde, wieviele Zeichen die Einträge haben und diese auf einen festen Wert (z.B. 10 Zeichen) plus drei Punkte begrenzt würden, damit mir das Design im Netscape-Browser nicht auseinanderfliegt.

Für konstruktive Vorschläge bin ich sehr dankbar.

Hier also das bisherige Skript:

--------------------------------------------------------

<html>
<head>

<script language="JavaScript">
// Name dieser html-Datei (soll nicht im Dropdown-Menü erscheinen)
var thisadress = "adress1.htm"
// Variable, die die im Dropdown-Menü angezeigten Kategorien festlegt
var thistopic = ""
</script>

<script language="JavaScript">
var items = new Array (
new item('Themen','headline'),
new item('','empty'),
new item('Thema 1','adress1.htm','kultur'),
new item('Thema 2','adress2.htm','gastro'),
new item('Thema 3','adress3.htm','shopping'),
new item('Thema 4','adress4.htm','kultur'),
new item('Thema 5','adress5.htm','gastro'),
new item('Thema 6','adress6.htm','shopping'),
new item('Thema 7','adress7.htm','kultur'),
new item('Thema 8','adress8.htm','gastro'),
new item('Thema 9','adress9.htm','shopping')
);
function item(theme,adress,topic)
{this.theme=theme;this.adress=adress;this.topic=topic;}

function go(adress)
{
if(adress == "headline")
{
alert("Themengruppen können nicht ausgewählt werden." + "\n\nBitte wählen Sie ein Thema.\n");
document.selector.reset();
document.selector.link.blur();
return false;
}
else if(adress == "empty")
{
alert("Bitte wählen Sie ein Thema.\n");
document.selector.reset();
document.selector.link.blur();
return;
}
else
{
document.location.href = adress;
document.selector.reset();
document.selector.link.blur();
}
}

function writemenu()
{
document.write('<form name="selector">');
document.write('<select name="link" onChange="go(this.form.link.options[this.form.link.options.selectedIndex].value)">');
// document.write('<option value="#">Themen'); // Alternative
// document.write('<option value="#">'); // Alternative
for (var i=0; i<items.length; i++)
{
var y='<option value="'+items[i].adress+'">'+items[i].theme;
if ((items[i].adress != thisadress) && ((items[i].topic == thistopic) (thistopic == ""))) // nur bestimmte Optionen anzeigen
document.write(y);
}
document.write('</select>');
document.write('</form>');
}

</script>

</head>

<body bgcolor="#FFFFFF">

<script language="JavaScript">
writemenu()
</script>

<br><br>
Dies ist die Seite Thema 1 (adress1.htm)
<br><br>
<img src="kultur.gif" onClick="thistopic='kultur'">kultur
<br>
<img src="gastro.gif" onClick="thistopic='gastro'">gastro
<br>
<img src="shopping.gif" onClick="thistopic='shopping'">shopping

</body>

</html>

--------------------------------------------------------

Danke nochmal an Antje, Simon und fool, die bei der bisherigen Fehlersuche aufopfernde Hilfe geleistet haben und natürlich an alle,
die mir weiterhin behilflich sind.

Grüße,

Sebastian Becker