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?
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...)
vllt geht das:
| code: |
1:
|
eval("var feldinhalt = document.form." + FeldName + ".value;"); |
|
in der Variable FeldName hast du dann deinen variierenden Feldnamen...
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
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ö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
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
Jetz bin ich aber entäuscht, normal wisst ihr doch immer auf alles ne antwort
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?

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
|
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