dfalls: Javascript + Formulare

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

  1. ü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

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

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

        1. aber letztlich klappts doch jetzt so wie du es wolltest?!

          Genau wie ich es wollte! Danke nochmals für die schnelle Hilfe.

          -dfalls

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

    2. Alles klar danke. Nun hab ich es!