Variable im formularfunktion

Andi
Hi,
ich hätte mal ne frage, wie kann ich eine varable in einem tag, der den inhalt eines Formularelements ausliest einbaun.

mein bisheriger versuch war so (type is die variable)
code:
1:
document.form. type .value

Aber irgendwie geht des ned.

habt ihr ne idee wie des gehn könnt?
nobody08
dasda schein passend zu sein: http://de.selfhtml.org/javascript/objekt...htm#allgemeines

Edit: für genauere Hilfe bitte nochmals dein Ziel erklären Fröhlich
Du willst den Wert eines Eingabefeldes ändern oder speichern oder sowas?
Andi
also,
ich will den wert, des fromulartags auslesen, weiß ja wie des geht.
mein problem is, das der elementname variable sein soll, also hinter "document.form." soll eine variable stehn und dann eben ".value".

Mein problem is, das ich ned weiß wie man die variable da reinschreibt.

kapiert?
Andi
Weiß denn keiner was?
Blacksoul
Zitat:
Original von Andi
kapiert?


Nein! xD

Ich weiss immernoch nich was du willst.
Weisst du net, welchen namen du da eintragen sollst, oder willst du dort eine Variable ausgeben?, welche einen Namen beinhaltet?

mfG
nobody08
hmm... ich glaube es kapiert zu haben ^^

Dafür gibt es eine funktion.. eval(). (Bei PHP dasselbe...) smile

vllt geht das:
code:
1:
eval("var feldinhalt = document.form." + FeldName + ".value;");

in der Variable FeldName hast du dann deinen variierenden Feldnamen... Augenzwinkern

Alternativ kannst du evt. auch mit einer for-schleife alle Felder durchlaufen... aber das kommt auf die Verwendung an, ob das geht.


Gruss
nb08
Andi
ah danke smile

genau sowas hab ich gesucht
Andi
So, hab noch ein problem.

Mein Code sieht jetz so aus
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
<script language="JavaScript">
	function wechsel (type, feld) {
		eval("var test = document.form." + type + feld + ".value;");
		document.form.ausgabe.value = "";
		var felda = feld + 1;
		var feldb = feld + 2;
		var feldc = feld + 4;
		switch (test) {
			case "1":
				switch (type) {
					case "hoehe":
						eval("document.form.aktiviert" + feldb + ".checked = true;");
						eval("document.form.aktiviert" + feldb + ".disabled = false;");
						eval("document.form.aktiviert" + feldc + ".checked = true;");
						eval("document.form.aktiviert" + feldc + ".disabled = false;");
						break;
					case "breite":
						eval("document.form.aktiviert" + felda + ".checked = true;");
						eval("document.form.aktiviert" + felda + ".disabled = false;");
						break;
				}
			case "2":
				switch (type) {
					case "hoehe":
						eval("document.form.aktiviert" + feldb + ".checked = false;");
						eval("document.form.aktiviert" + feldb + ".disabled = true;");
						eval("document.form.aktiviert" + feldc + ".checked = true;");
						eval("document.form.aktiviert" + feldc + ".disabled = false;");
						break;
					case "breite":
						eval("document.form.aktiviert" + felda + ".checked = false;");
						eval("document.form.aktiviert" + felda + ".disabled = true;");
						break;
				}
				break;
			case "3":
				if (type == "hoehe") {
					eval("document.form.aktiviert" + feldb + ".checked = false;");
					eval("document.form.aktiviert" + feldb + ".disabled = true;");
					eval("document.form.aktiviert" + feldc + ".checked = false;");
					eval("document.form.aktiviert" + feldc + ".disabled = true;");
				}
				break;
		}
	}
</script>


Und des is des zum aufrufen der funktion

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
foreach($file as $inhalt) {
    $inhalt explode(";"$inhalt);
    if($spalte == 1) {
        echo '<tr>';
    }
    echo '<td align="center" valign="middle"><b>'.$feld.'</b><br>
        <b>Aktiviert:</b> <input type="checkbox" name="aktiviert'.$feld.'" checked>
        <b>H&ouml;he:</b> <select name="hoehe'.$feld.'" size="3" onclick="wechsel(\'hoehe\','.$feld.')">
            <option value="1" selected>1</option>
            <option value="2">2</option>
            <option value="3">3</option>
        </select>
        <b>Breite:</b> <select name="breite'.$feld.'" size="2" onclick="wechsel(\'breite\','.$feld.')">
            <option value="1" selected>1</option>
            <option value="2">2</option>
        </select>
    </td>';
    if($spalte == 2) {
        echo '</tr>';
        $spalte 0;
    }
    $spalte++;
    $feld++;
}


Mein problem is, das wenn ich bei Höhe die 3 auswähle und dann die 2, wird des 2. nimmer aktiviert aber des 3. scho.
genauso isses auch bei der breite. irgendwie mag er des "feld + 1" und "feld + 2" ned
Ich kapier aber ned warum verwirrt
Andi
keiner ne idee?
nobody08
hmmm, ist die variable "feld" jeweils vom typ integer (Zahl) oder string? und willst du da jeweils eine 1, 2 oder 3 als string anhängen, oder, wenn feld eine Zahl ist, einfach um 1 oder so erhöhen?

jenachdem musst du also 1, 2 und 3 in anführungszeichen setzen..

und bist du sicher, dass du es in Zeile wirklich so: + type + feld + willst? (wegen dem type vor dem feld..)
Andi
Also, die variable "feld" is ne zahl.

die variable "feld" gibt des feld an, des die funktion aufruft. die variable "type" obs das auswahlfeld "breite" oder "höhe" is, damit muss des so sein.
bei "breite" gibts die möglichkeit eine 1 oder 2 auszuwählen, bei eins soll des feld rechts daneben, also "feld + 1", wieder aktiviert werden, bei 2 deaktiviert.
bei "höhe" kann man zwischen 1, 2 und 3 wählen. bei 1, sollen die 2 felder drunter

mein problem is das der des feld des 2 unter dem feld is, also des mit "feld + 4", funzt, aber die mit "feld + 1" und "feld + 2" ned.

also is da nix mit 1, 2 oder 3 eher 1, 2 oder 4. und wo sollte ich die einklammern?
Andi
keiner ne idee?
Andi
Jetz bin ich aber entäuscht, normal wisst ihr doch immer auf alles ne antwort Fröhlich
nobody08
sry war einige Tage nicht mehr hier...

kannst du mal das JS zeigen? dann habe ich schon mal ein wenig ein grösseres Bild von dem was du willst ^^
Andi
siehe 7 oder 8 beiträge höher, des müsst des eigentlich sein.
Andi
Und nobody, keine idee?

Oder irgend ein ander ne idee?
Baby Herman
Irgendwie wird die Funktion deines Scriptes nicht so recht deutlich. Ich für meinen Teil habe irgendwie Probleme damit, zu sehen und zu erkennen, was du genau vorhast und auch der PHP Teil scheint mir unvollständig. Warum zum Beispiel benutzt du explode? mhhh.... ??? wo du doch anscheinend später nichts mehr von diesen entstandenen Variablen nutzt.
Andi
Also, der PHP-Teil, das mit der Variable, des is weil der inhalt in eim Textfile wo des eben so gespeichert is.
Aber des is jetz egal, der Teil geht ja.

Und des Javascript soll eine Checkbox an oder ausmachen, jenachdem was man auswählt.
Baby Herman
Zitat:
Original von Andi
Mein problem is, das wenn ich bei Höhe die 3 auswähle und dann die 2, wird des 2. nimmer aktiviert aber des 3. scho.
genauso isses auch bei der breite. irgendwie mag er des "feld + 1" und "feld + 2" ned
Ich kapier aber ned warum verwirrt


Tut mir leid, aber diese Problembeschreibung ist irgendwie total unklar. Wenn du etwas auswählst in der <select>-Box und dieses absendest, dann gibst du Werte zurück. Irgendwie bin ich aber etwas verwirrt, warum du hier erstens JavaScript verwendest, wo es auch mit PHP funktionieren würde und somit nicht Browser abhängig wäre und warum du zweitens so komischen Kram mit JavaScript machst. Sry, aber irgendwie blick ich da einfach nicht durch, was genau da passiert.

Ich würde dir empfehlen, hier nur mit PHP zu arbeiten, da nicht alle Browser JavaScript unterstützen und meist auch die Besucher ihr JavaScript aus Sicherheitsgründen abschalten. PHP ist genau so in der Lage, Dinge aus Forumlaren zu verarbeiten. So könntest du dann nach deiner Auswertung eine entsprechende Variable festlegen, die die Änderung für den Script danach klar macht.

Hoffe, ich konnte so irgendwie helfen, ansonsten ist dein Script für mich jedenfalls total undurchsichtig.
Andi
Ich will des ja ohne abschicken ändern können.

Also so ich wähl was aus und des ändert sich sofort ohne großes seitenneuladen.
Aber wenn keiner ne idee hat, muss ichs wohl doch so machen