Seite 1 von 1
javascript frage
Verfasst: Fr 27. Jan 2006, 15:15
von scharle
var u = "Uhrzeit_"+wieviel;
alert(window.document.form.u.value);
warum funktioniert das nicht.
will quasi die variable u dynamisch erzeugen und dann dein Formular "form" verändern.
könnte man auch mit array einfacher machen aber dann muesste ich das komplette skript überarbeiten.
jemand eine idee?
danke
Verfasst: Fr 27. Jan 2006, 15:25
von Spike
Schau mal hier:
http://de.selfhtml.org/javascript/objekte/date.htm
Wenn ich das recht sehe sprichst du die Form "form" an ... form.u da sucht er doch nach einem Formularelement das "u" heisst, oder?
Probier das mal aus, da kannst du dir evtl was ableiten.
Code: Alles auswählen
<html>
<head>
<title>JavaScript: Beispiel</title>
<script>
var speed = 1000;
var tid = 0;
function dodate()
{
f.date.value=new Date();
tid=window.setTimeout("dodate()",speed);
}
function start(x)
{
f=x;
tid=window.setTimeout("dodate()",speed);
}
</script>
</head>
<body>
<h1>JavaScript-Uhr</h1>
Diese Funktion stellt eine kleine Uhr mit Datum dar.
<p>
<FORM name=dateform>
<input name=date size=28 value="">
</FORM>
<script>start(document.dateform);</script>
</body>
</html>
Ansonsten sag doch mal was du genau vorhast ... und warum das mit PHP nicht geht

Verfasst: Fr 27. Jan 2006, 16:18
von scharle
du hast es etwas falsch verstanden.
es gibt 2 formulare.
das eigentliche Formular(stark gekürzt):
Code: Alles auswählen
<form name=form action="match_upd.php">
<td><input name="Datum_<?=$i;?>" size=11 maxlength="10" class="Feld" value="<?if($arrMatch2[$i]['matchTime']!=0)echo strftime("%d.%m.%Y", $arrMatch2[$i]['matchTime']);?>" ></input></td>
<td><input name="Uhrzeit_<?=$i;?>" size=5 maxlength="10" ="Feld" value="<?if($arrMatch2[$i]['matchTime']!=0)echo strftime("%H:%M", $arrMatch2[$i]['matchTime']);?>"></input></td>
<td>
</tr>
</table>
</form>
da werden 9 zeilen erzeugt (Uhrzeit_1, Uhrzeit_2,...)
dann gibts ein zweites formular, welches werte in das erste formular eintragen soll:
Code: Alles auswählen
<form name=DatumX action="">
<tr>
<td>Datum</td>
<td><input name="dat" size=11 id="f_date_c" maxlength="10" class="Feld" value=""><img src="calendar/img.gif" id="f_trigger_c" style="cursor: pointer; border: 0px solid red;vertical-align:middle;" title="Datum" onmouseover="this.style.background='red';" onmouseout="this.style.background=''"/></td>
</tr>
<tr>
<td>Uhrzeit</td>
<td><input name="uhr" size=5 maxlength="10" class="Feld" value=""> für die ersten <input name="wieviel" size=2 maxlength="1" class="Feld" value=""> Spiele von <select name="vonwo" size="1"><option>oben</option><option>unten</option></select> <a href="javascript:changeX()" title="Fügt das Datum ein">OK</a></td>
</tr>
</form>
da kann ich dann auch auswählen was in die Inputfelder des ersten Fomulars kommen soll. die function changeX() schaut ao aus:
Code: Alles auswählen
function changeX(){
var f = window.document.form;
var g = window.document.DatumX;
var vonwo = g.vonwo.value;
var wieviel = g.wieviel.value;
alert(wieviel);
while(wieviel>=0){
if(vonwo == "oben"){
alert("o");
var d = "Datum_"+wieviel;
var dd = f.d;
var u = "Uhrzeit_"+wieviel;
alert(f.Datum_1.value);
alert(window.document.form.u.value);
//f.u.value = g.uhr.value;
//f.d.value = g.dat.value;
} else{
alert("u");
var temp = 9 - wieviel;
var d = "Datum_"+temp;
var u = "Uhrzeit_"+temp;
}
wieviel = wieviel -1;
}
}
wenn man es hardcodiert geht es, nur eben wenn ich das
u vorher definieren will, kommt er zu keinem ergebnis

Verfasst: Fr 27. Jan 2006, 16:23
von Spike
Warum nutzt du überhaupt 2 Formulare und JavaScript?
Verfasst: Fr 27. Jan 2006, 16:27
von scharle
weil mir das am sinnvollsten erschien ...
es geht ja eigentlich nur darum, dass das gehen müsste, dann waers ja super einfach:
window.document.form.u.value
warum erkennt das u nicht, obwohl ichs vorher definiere?
Verfasst: Fr 27. Jan 2006, 16:48
von scharle
das problem ist, dass u ein string ist und dann nicht mehr als code erkannt wird.
gibts ne möglichkeit aus dem string wieder einen code zu machen??
Verfasst: Fr 27. Jan 2006, 17:16
von Spike
Uff Javascript ist nicht (mehr) mein Ding, aber ich schätze der kommt mit dem dynamischen Variablennamen nicht zurecht.
Probier mal
Verfasst: Fr 27. Jan 2006, 17:31
von scharle
ja auf die elements sache bin ich dann auch gekommen.
danke für den tipp mit "Datum_" + wieviel

Verfasst: Fr 27. Jan 2006, 17:33
von Hunter
scharle hat geschrieben:
window.document.form.u.value
Das funktioniert nicht, weil "u" in dem Falle nicht als Variable sondern als Name eines Elements des Formulars angenommen wird.
Funktionieren müsste folgendes :
window.document.getElementsByName(u).value
(siehe auch :
http://de.selfhtml.org/javascript/objek ... ts_by_name)
Verfasst: Fr 27. Jan 2006, 17:50
von scharle
kommst leider zu spät.
aber das war genau das was ich gesucht habe

Verfasst: Fr 27. Jan 2006, 18:13
von iglo
Wozu soll das ganze Skript eigentlich gut sein? (habs nicht gelesen, die Schrift für Code hier im Forum ist mir zu klein und ausserdem hellblau auf hellgrau)
Verfasst: Fr 27. Jan 2006, 19:08
von scharle
ich hab 9 spiele pro bundeliga spieltag.um jetzt nicht für jede partie datum und uhrzeit extra eintragen zu müssen, hab ich diese js function geschrieben bei der du auswählen kannst welches datum und uhrzeit die ersten X spiele und welche datum und uhrzeit die letzten 9-X spiele haben
hier ein screen:

Verfasst: Fr 27. Jan 2006, 19:54
von iglo
ahso
