Hallo zusammen,
ich habe folgendes Problem, beim ersten Aufruf meine Seite bekomme ich von PHP Werte, die ich später an JS übergebe, es ist die Zahl der Seiten die ich mit JS darsetell mit Hilfe von documen.write,
...
<td colspan="3" height="30" valign="top">
<script language=JavaScript>
<!--
var SeitenZahl = "<%=$seiten%>";
for(var i=1; i<=SeitenZahl; i++){
document.write("<input type='button' id='s_"+i+"' value='"+i+"' style='width=25;'");
document.write("OnClick="seiten_zahl("+i+")">\n");
}
//-->
</script>
</td>
...
den grade angeklickten Wert übergebe ich an ein Funktion "seiten_zahl":
...
var punkte_zahl = new Array( "10", "12", "4", "22");
var werte = 0;
function seiten_zahl(seite_nr){
for(var i=1; i<=punkte_zahl.length; i++){
if(i == seite_nr){
wert = punkte_zahl[(i-1)];
}
}
punkte_aufbau(wert);
}
...
in dieser Funktion wird ermittelt, welche "Seite" grade ausgewählt worden ist, danach wird der entsprechend Wert aus dem Array "punkte_zahl" geholt, also klickt der User den Punkt zwei wird aus dem Array "punkte_zahl" der Wert 12 ausgelesen und weite an die nächst Funktion "punkte_aufbau" übergeben:
...
function punkte_aufbau(wert_punkte){
for(var i=1; i<=wert_punkte; i++){
document.write("<input type='button' id='b_"+i+"' value='"+i+"' style='width=25;'");
document.write("OnClick="farbe("+i+")">\n");
}
}
...
Die Funktion "punkte_aufbau" soll jedes Mal so oft ablaufen wie hoch ist der Wert in der Variable "wert_punkte", so weit so gut.
Jetzt noch etwas zu dem Hintergrund, die beiden hier erwähnten Funktionen stehen vor dem body, im JS Bereich, der obere Tabelleabschnitt steht schon hinter dem body, beim laden der Seite wird die Funktion "seiten_zahl" aufgerufen:
...
<BODY OnLoad="seiten_zahl('1');">
...
Jetzt das Problem, beim ersten Aufruf der Seit wird der obere Tabellenabschnitt mit der Funktion "seiten_zahl" aufgerufen, der übergibt den ersten Wert aus dem Array "punkt_zahl" an die Funktion "punkte_aufbau" und die Funktion wird in der darunter liegende Tabelle aufgerufen:
<table>
<tr>
<td colspan="3" height="30" valign="top">
<script language=JavaScript>
<!--
var SeitenZahl = "<%=$seiten_anzeige%>";
for(var i=1; i<=SeitenZahl; i++){
document.write("<input type='button' id='s_"+i+"' value='"+i+"' style='width=25;'");
document.write("OnClick="seiten_zahl("+i+")">\n");
}
//-->
</script>
</td>
</tr>
<tr>
<td>
<script language=JavaScript>
<!--
punkte_aufbau();
//-->
</script>
</td>
...
aber die komplett Seite wird "vernichtet", der Quelltext im Browser sieht so aus:
<input type='button' id='b_1' value='1' style='width=25;'OnClick="button_farbe(1)">
<input type='button' id='b_2' value='2' style='width=25;'OnClick="button_farbe(2)">
<input type='button' id='b_3' value='3' style='width=25;'OnClick="button_farbe(3)">
<input type='button' id='b_4' value='4' style='width=25;'OnClick="button_farbe(4)">
<input type='button' id='b_5' value='5' style='width=25;'OnClick="button_farbe(5)">
<input type='button' id='b_6' value='6' style='width=25;'OnClick="button_farbe(6)">
<input type='button' id='b_7' value='7' style='width=25;'OnClick="button_farbe(7)">
<input type='button' id='b_8' value='8' style='width=25;'OnClick="button_farbe(8)">
<input type='button' id='b_9' value='9' style='width=25;'OnClick="button_farbe(9)">
<input type='button' id='b_10' value='10' style='width=25;'OnClick="button_farbe(10)">
das ist alle was der Browser bekommt!
Jetzt meine Frage weis jemand wie man das Problem lösen kann, dh. beim Aufruf der Funktion "punkte_aufbau" der restliche Quellcode erhalten bleibt, oder den "EndWert" für die for-Schleife an die richtige Stelle übergeben:
...
<table>
<tr>
<td colspan="3" height="30" valign="top">
<script language=JavaScript>
<!--
var SeitenZahl = "<%=$seiten_anzeige%>";
for(var i=1; i<=SeitenZahl; i++){
document.write("<input type='button' id='s_"+i+"' value='"+i+"' style='width=25;'");
document.write("OnClick="seiten_zahl("+i+")">\n");
}
//-->
</script>
</td>
</tr>
<tr>
<td>
<script language=JavaScript>
<!--
for(var i=1; i<=EndWwert; i++){
document.write("<input type='button' id='b_"+i+"' value='"+i+"' style='width=25;'");
document.write("OnClick="farbe("+i+")">\n");
}
//-->
</script>
</td>
...
als alternative, leider haben beide nicht funktioniert, hat jemand ein Vorschlag oder eine Idee wie man das lösen kann?
Danke im voraus.
Grüße Bernhard