wert vom hidden-feld in php-variable einlesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • wert vom hidden-feld in php-variable einlesen

    Ich habe folgendes Formularfeld:


    <form name = "karte1" method = "GET">
    <input type="button" name = "kartep" class="buttonplus" onmousedown="inc(this.form)" alt = "Anzahl erh&ouml;hen" />
    <input type = "hidden" name="count" type="text" value= "0" size="30" />
    <input type="button" class="buttonminus" onmousedown="dec(this.form)" />
    </form>

    Der Wert des Hidden-Feldes wird per js hineingeschrieben. Nun möchte ich den aktuellen Wert aus dem Feld auslesen und einer php-Variablen zuweisen, da ich den Wert an mehreren Stellen nochmal anzeigen muss. Geht sowas und wenn ja könnte mir vielleicht einer den code dazu geben? Ist bestimmt nur eine Zeile (hoffe ich doch). Habe es auch schon per Session-Variable versucht, klappt aber irgendwie nicht.

    $zaehler = $_GET['count']; hat auch nicht funktioniert
    Zuletzt geändert von spreisseline; 01.03.2008, 22:03.

  • #2
    Re: wert vom hidden-feld in php-variable einlesen

    Original geschrieben von spreisseline
    Nun möchte ich den aktuellen Wert aus dem Feld auslesen und einer php-Variablen zuweisen,
    php läuft aber auf dem server, also musst du die daten irgendwie an ein php-script senden.

    drei möglichkeiten:

    per reload - dazu fehlt dir übrigens noch das action-attribute im form-tag.
    1. mit zusätzlichem submit-button am ende der klicks
    2. nach jedem klick per javascript submit()
    ---
    3. mit ajax

    Kommentar


    • #3
      hi,

      danke für Deine Antwort. Aber irgendwie will das nicht funktionieren. Wenn ich die Seite neu lade, dann ist mein Wert im hidden-Feld wieder 0. Also müsste ich diesen Wert mit übergeben. Leider ist dieser Wert ja nicht in einer Variablen, so dass ich da irgendwie einen Fehler mache. Könntest Du anhand meines Bsp. mal etwas ausfühlicher werden? Das wäre nett. Das script heist index.php

      Kommentar


      • #4
        Re: wert vom hidden-feld in php-variable einlesen

        So funktioniert das mit den Buttons:
        PHP-Code:
        <form>
            <
        input type="hidden" name="count" value="0" />
            <
        input type="button" name="plus" value="+" onclick="this.form.count.value++;" />
            <
        input type="button" name="minus" value="-" onclick="this.form.count.value--;" />
        </
        form
        Zur Kontrolle machen wir das hidden Input mal sichtbar:
        PHP-Code:
        <form>
            <
        input type="text" name="count" value="0" size="3" />
            <
        input type="button" name="plus" value="+" onclick="this.form.count.value++;" />
            <
        input type="button" name="minus" value="-" onclick="this.form.count.value--;" />
        </
        form
        Aber bisher passiert das alles nur clientseitig. Das Formular kann gar nicht abgeschickt werden. Das ändern wir jetzt:
        PHP-Code:
        <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
            <input type="hidden" name="count" value="0" />
            <input type="button" name="plus" value="+" onclick="this.form.count.value++;" />
            <input type="button" name="minus" value="-" onclick="this.form.count.value--;" />
            <input type="submit" name="save" value="Speichern" />
        </form>

        Kontrolle: <pre><?php print_r($_POST); ?></pre>
        Jetzt hast du alles was du brauchst - Plus/Minus-Funktionalität auf Clientseite und Übertragung des hidden Inputs durch Absenden des Formulars.

        Wenn du den zusätzlichen Button zum Absenden nicht haben willst, mußt du den Wert bei jeder Änderung an den Server übertragen. Dazu kannst du testweise einfach mal die Plus/Minus-Buttons zu Submit-Buttons machen.
        PHP-Code:
        <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
            <input type="hidden" name="count" 
                   value="<?php echo (isset($_POST['count']) ? $_POST['count'] : 0); ?>" />
            <input type="submit" name="plus" value="+" onclick="this.form.count.value++;" />
            <input type="submit" name="minus" value="-" onclick="this.form.count.value--;" />
        </form>

        Kontrolle: <pre><?php print_r($_POST); ?></pre>
        In diesem Beispiel könnte man natürlich auf das clientseitige In/Dekrementieren verzichten und es stattdessen auf dem Server ausführen. Dann braucht der Client nichtmal Javascript.
        Allerdings soll dieses Beispiel nur zum nächsten überleiten, bei dem das Formular nicht mehr abgeschicht wird sondern der Count per AJAX übertragen.
        Aber ich will nicht alles vorkauen ... versuchs mal selbst!

        Kommentar


        • #5
          Hi,

          danke für Deine ausführliche Bescheibung. Ich habe alles umgesetzt und etwas verändert und es funktioniert prima. Nur habe ich jetzt das Problem, dass nach dem Absenden die Seite neu geladen wird (was ja auch so sein soll). Nur habe ich von diesen Formularen 4 an der Zahl und wenn ich in dem 2. Formular z.B. den Wert verändere ist der Wert vom 1. Formular wieder weg *heul*
          Hast Du dafür auch so eine top Hilfestellung?Habe es mit einer Session-Variable versucht, geht aber irgendwie nicht.

          Kommentar


          • #6
            Hast Du dafür auch so eine top Hilfestellung?
            auch mal was selber machen?
            Habe es mit einer Session-Variable versucht, geht aber irgendwie nicht.
            ist keine fehlerbeschreibung. was geht nicht und wie sieht der code aus?

            gruß
            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Am Anfang des php-Fildes steht:

              session_start ();

              .....

              Dann kommen meine 4 Formulare (hier nur 1 dargestellt):

              <form action name = "karte1" method = "POST">
              <input type="button" class="buttonplus" name = "karte1p" onmousedown="this.form.count1.value++;" onClick = "document.karte1.submit()"/>
              <input type = "hidden" name="count1" value = "<?php echo (isset($_POST['count1']) ? $_POST['count1'] : 0); ?>" size="30" />
              <input type="button" class="buttonminus" onmousedown="this.form.count1.value--;" onClick = "document.karte1.submit()"/>
              </form>


              .....

              Und hier der Versuch mit der Variable den Wert zu halten:

              <? If (isset($_POST['count1']))
              { $_SESSION["count1"] = $_POST['count1'];
              $anz1 = $_SESSION['count1'];
              $_POST['count1'] = $anz1 ;
              }
              else
              {
              $_SESSION["count1"] = $anz1 ;
              $_POST['count1'] = $anz1 ;
              }
              ?>

              Erstens "hinkt" die Variable immer 1 Klick nach und wenn ich im 2. Formular was stelle, dann kommt alles durcheinander.


              Ich dachte mir, wenn ich mir den aktuellen Wert in eine Variable gebe, dann kann ich diese "alte" Variable einfach als aktuellen Wert übergeben
              Zuletzt geändert von spreisseline; 02.03.2008, 17:58.

              Kommentar

              Lädt...
              X