Lieber Dominik,
warum verlinkst Du auf eine Seite "...kevin.html"? Bist Du nun Dominik oder Kevin?
Aha. Also schauen wir mal. Du definierst Deine Arrays (ob die gewählte Struktur sinnvoll ist, darüber nachher mehr) und drei Funktionen. Ich poste hier mal diese drei Funktionen:
function abfrage()
{
wahlfeld="";
if (document.form1.wortfeld[0].checked == true)
wahlfeld = militaer;
if (document.form1.wortfeld[1].checked == true)
wahlfeld = bewegung;
aufbau();
}
function aufbau()
{
document.write("<form id=\"2\"><table><tr><td>");
for (x=0; x<wahlfeld.length; x++)
document.write(wahlfeld[x][0]+ "<br>");
document.write("</td></tr></table></form><input type=\"button\" onClick=\"\" value=\"Ich bin fertig!\">");
}
function punkterechner()
{
var out = "Sie haben " + punkte + " von 1 Punkten erreicht";
document.getElementById("ergebnis").innerHTML = out;
}
Wie man sehen kann, arbeitest Du überall mit globalen Variablen. Das ist nicht optimal. Es wäre sinnvoller, ein globales Objekt anzulegen, in welches Du Deine Sachen als Unterobjekte oder Methoden hineinkonstruierst. Vergleiche mal mein Quiz-Script dazu.
Das nächste, was mir an Deinem Code auffällt: Du notierst document.write(). Das ist nach dem fertigen Laden einer Seite sehr problematisch, da Du damit das vorhandene Dokument komplett ersetzt. Hier versagt dann auch zum Beispiel Dein Punkterechner, da das Element mit der ID "ergebnis" nach document.write() nicht mehr existiert! Das bedeutet, dass Du nach dem document.write()-Vorgang quasi auf einer neuen Seite bist! Es wäre daher schlauer, die bestehende Seite in ihrer Struktur zu belassen, um nur ihre Inhalte zu modifizieren. Dazu brauchst Du dann die ganzen http://de.selfhtml.org/javascript/objekte/document.htm@title=DOM-Methoden, deren Umgang allerdings erst gründlich geübt und gelernt werden will (ich erinnere mich da an meine ersten Gehversuche... und Verzweiflungen).
Bevor Du Dich jetzt aber entmutigen lässt, möchte ich Dir nur raten (falls Du das nicht sowieso schon tust), dass Du Dir im Firefox den Firebug-Plugin installierst, um damit die volle Übersicht über alle derzeit definierten Objekte und Funktionen/Variablen zu haben. Ich wüsste nicht, wie ich ohne dieses Wahnsinnswerkzeug JavaScripte schreiben sollte.
Dass Du erst hinterher im IE testest, versteht sich (hoffentlich) von selbst.
Zu Deinen Daten-Arrays: Wenn Du eine echte HTML-Seite mit JavaScript modifizierst, dann kannst Du die Daten korrekt in HTML abbilden. Mein Quiz-Script benutzt dazu Tabellen, die in speziellen Elternelementen mit einer ganz speziellen Klasse stehen (z.B. <div class="kreuzwort-quiz"><table><tr>...), um sich aus diesen Tabellen dann die eigentlichen Quiz-Inhalte zu holen. Eine solche Vorgehensweise hat den Vorteil, dass Du dasselbe JavaScript auf mehreren HTML-Seiten einsetzen kannst, und dass Du nur auf den jeweiligen Seiten andere Inhalte bereithalten musst.
Zuguterletzt (hoffentlich "guter") möchte ich Dir ans Herz legen, dass Du den JavaScript-Code in einer externen Datei notierst, um diese im <head> Deiner Seite einzubinden, sodass dieses JavaScript dann alles notwendige an Deiner Seite vornimmt, ohne dass Du dazu im HTML-Dokument irgendwo noch weiteren JavaScript-Code (z.B. Eventhandler wie onclick oder ähnliches) notierst. Das nennt man dann "unobtrusive JavaScript" und ist eine Idealvorstellung, wie JavaScript verwendet werden sollte (mein Quiz-Script geht übringens auf diese Art und Weise vor). Wenn JavaScript im Browser nicht verfügbar ist, was passiert dann auf der Seite, wenn sie geladen wurde?
Letzte Frage an Dich: Hat Dir Dein Lehrer explizit aufgetragen, dass Du das mit JavaScript löst? Es wäre ja auch eine server-seitige Scriptsprache wie PHP möglich gewesen...
Liebe Grüße aus Ellwangen,
Felix Riesterer.
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)