javascript frage

Bei Problemen: UC hilft! Über Spiele bitte im Forum Games diskutieren. Spam wird gelöscht!

Moderatoren: Krallzehe, Quickkiller

Antworten
Benutzeravatar
scharle
UC-Member
Beiträge: 4593
Registriert: Mo 12. Nov 2001, 01:00

javascript frage

Beitrag 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
It's your HEIMSPIEL
Benutzeravatar
Spike
UC Admin
Beiträge: 25098
Registriert: Mo 29. Okt 2001, 01:00
Kontaktdaten:

Beitrag 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 :D
„Wissen ist Nacht!“
Prof. Dr. Abdul Nachtigaller
Benutzeravatar
scharle
UC-Member
Beiträge: 4593
Registriert: Mo 12. Nov 2001, 01:00

Beitrag 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 :(
It's your HEIMSPIEL
Benutzeravatar
Spike
UC Admin
Beiträge: 25098
Registriert: Mo 29. Okt 2001, 01:00
Kontaktdaten:

Beitrag von Spike »

Warum nutzt du überhaupt 2 Formulare und JavaScript?
„Wissen ist Nacht!“
Prof. Dr. Abdul Nachtigaller
Benutzeravatar
scharle
UC-Member
Beiträge: 4593
Registriert: Mo 12. Nov 2001, 01:00

Beitrag 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?
It's your HEIMSPIEL
Benutzeravatar
scharle
UC-Member
Beiträge: 4593
Registriert: Mo 12. Nov 2001, 01:00

Beitrag 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??
It's your HEIMSPIEL
Benutzeravatar
Spike
UC Admin
Beiträge: 25098
Registriert: Mo 29. Okt 2001, 01:00
Kontaktdaten:

Beitrag von Spike »

Uff Javascript ist nicht (mehr) mein Ding, aber ich schätze der kommt mit dem dynamischen Variablennamen nicht zurecht.

Probier mal

Code: Alles auswählen

document.form.elements["Datum_" + wieviel].value
„Wissen ist Nacht!“
Prof. Dr. Abdul Nachtigaller
Benutzeravatar
scharle
UC-Member
Beiträge: 4593
Registriert: Mo 12. Nov 2001, 01:00

Beitrag von scharle »

ja auf die elements sache bin ich dann auch gekommen.

danke für den tipp mit "Datum_" + wieviel ;)
It's your HEIMSPIEL
Benutzeravatar
Hunter
UC Admin
Beiträge: 8314
Registriert: Do 15. Nov 2001, 01:00
Wohnort: Frankfurt/Main
Kontaktdaten:

Beitrag 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)
Benutzeravatar
scharle
UC-Member
Beiträge: 4593
Registriert: Mo 12. Nov 2001, 01:00

Beitrag von scharle »

kommst leider zu spät.
aber das war genau das was ich gesucht habe ;)
It's your HEIMSPIEL
Benutzeravatar
iglo
UC Admin
Beiträge: 4702
Registriert: Mo 12. Nov 2001, 01:00
Wohnort: Feld der Ehre
Kontaktdaten:

Beitrag 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)
Benutzeravatar
scharle
UC-Member
Beiträge: 4593
Registriert: Mo 12. Nov 2001, 01:00

Beitrag 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:
Bild
It's your HEIMSPIEL
Benutzeravatar
iglo
UC Admin
Beiträge: 4702
Registriert: Mo 12. Nov 2001, 01:00
Wohnort: Feld der Ehre
Kontaktdaten:

Beitrag von iglo »

ahso :)
Antworten