Javascript + Formulare
dfalls
- javascript
hi, habe folgene Funktion:
function test() {
//alter wert
a = document.forms[0].elements[10].value;
alert(a);
//neuer wert
a = 'true';
alert(a);
document.forms[0].submit();
}
sie soll den wert eines "hidden"-Feldes aendern. Tut es auch, wenn man der Ausgabe von alert() glauben schenken will.
Allerdigs gibt PHP nach dem versand des Forumares den ersten wert aus. Hat jemand eine idee warum und ggf. wie ich das zum laufen bringen kann?
danke
übergibst du die variable als formular-element an das php-script? dann wurde mit deiner funktion der wert ja nicht geändert. das müsste dann so sein:
function test() {
//alter wert
a = document.forms[0].elements[10].value;
alert(a);
//neuer wert
document.forms[0].elements[10].value = 'true';
alert(a);
document.forms[0].submit();
}
du kannst die javascript-variable "a" ja nicht einfach so an php übergeben. deshalb muss direkt der wert im formular geändert werden.
gruß hein
deshalb muss direkt der wert im formular geändert werden.
Ich dachte das tue ich. Mir ist klar, dass die Variable 'a' nicht in PHP vorhanden ist. Ich nutze dort den Namen des Formular-Elements (also $_POST['test']).
Ich verstehe nicht warum das nicht will.
gruß dfalls
in
deshalb muss direkt der wert im formular geändert werden.
Ich dachte das tue ich. Mir ist klar, dass die Variable 'a' nicht in PHP vorhanden ist. Ich nutze dort den Namen des Formular-Elements (also $_POST['test']).
Ich verstehe nicht warum das nicht will.
naja und weil du auf das formular-element "test" zugreifst, muss dieses vor dem absenden des formulars auch direkt geändert werden. es überträgt ja sonst den originalwert.
dein "a" in der javascript-funktion ist ja nur eine temporäre, auf die seite bezogene variable, die eine referenz auf das form-element "test" ist. änderst du "a", wird nur deren wert geändert, nicht aber der wert des form-elements.
aber letztlich klappts doch jetzt so wie du es wolltest?!
gruß hein
aber letztlich klappts doch jetzt so wie du es wolltest?!
Genau wie ich es wollte! Danke nochmals für die schnelle Hilfe.
-dfalls
hi,
dein "a" in der javascript-funktion ist ja nur eine temporäre, auf die seite bezogene variable, die eine referenz auf das form-element "test" ist.
nein, sie ist eben keine referenz.
a = document.forms[0].elements[10].value;
a bekommt hier den wert der value-eigenschaft eines formularelementes zugewiesen.
dadurch ist a aber keine referenz auf diese eigenschaft - eine referenz kannst du nur auf objekte erstellen, nicht auf deren eigenschaften.
a = document.forms[0].elements[10];
wäre eine referenz auf das formularelement, da dieses ein objekt darstellt.
mit
var b = a.value;
könntest du jetzt b den wert des values dieses elementes zuweisen, und ebenso umgekehrt mit
a.value = "neuer wert";
dem formularfeld einen neuen value verpassen.
gruss,
wahsaga
Alles klar danke. Nun hab ich es!