Conan: Absendebutton ohne Text aber mit Absendewert

Hi,

Ich möchte einen button type submit oder einen input type submit erstellen.
Dabei soll der Button keinen Text anzeigen (einfach ohne alles), jedoch einen Absendewert enthalten den ich dann mit php auswerten kann.

Beispiel:
<button type="submit" name="time" class="time" value="1"></button>

Das scheint nicht zu klappen denn

$_POST['time'] ist leer

Geht das überhaupt?

  1. Lieber Conan,

    $_POST['time'] ist leer

    aber es existiert! Damit hast Du doch schonmal eine Rückmeldung darüber, welcher Button geklickt wurde, falls es mehrere Submit-Buttons gibt.

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    1. Hi

      aber es existiert! Damit hast Du doch schonmal eine Rückmeldung darüber, welcher Button geklickt wurde, falls es mehrere Submit-Buttons gibt.

      Leider reicht das nicht ich brauche den Value weil es viele solcher Button gibt die alle time heißen.

      mfg
      Conan

      1. hi,

        Leider reicht das nicht ich brauche den Value weil es viele solcher Button gibt die alle time heißen.

        Warum änderst du _diesen_ Umstand dann nicht?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
      2. echo $begrüßung;

        aber es existiert! Damit hast Du doch schonmal eine Rückmeldung darüber, welcher Button geklickt wurde, falls es mehrere Submit-Buttons gibt.

        Leider reicht das nicht ich brauche den Value weil es viele solcher Button gibt die alle time heißen.

        Dann hilft aufgrund des IE-Bugs m.E. nur, name eindeutig zu gestalten. Wie wäre es mit time[x], wobei x dein Wert aus value ist. An den Wert kommst du mit key($_POST['time']).

        echo "$verabschiedung $name";

        1. Hi,

          erstmal danke bis hier konnte gestern nicht mehr antworten.

          Dann hilft aufgrund des IE-Bugs m.E. nur, name eindeutig zu gestalten. Wie wäre es mit time[x], wobei x dein Wert aus value ist. An den Wert kommst du mit key($_POST['time']).

          Damit lässt sich mein Problem leider nicht ganz lösen.
          x ist bei mir die ID eines Datensatzes der eine Spalte Anzahl hat.
          Ich möchte jetzt für jedes x die Anzahl Button anzeigen und wenn ein Button gedrückt wird die Anzahl um 1 reduzieren und die neue Anzahl Button anzeigen

          z.B. 8 x Button mit ID 1, 2 x Button mit ID 2 u.s.w.

          weiterhin habe ich folgendes getestet.

          <form action="test.php" method="post" name="formtest">
          <button name="btn[1]" type="submit" value="1"></button>
          <button name="btn[2]" type="submit" value="2"></button>
          </form>
          <?php
          echo key($_POST['btn']);
          ?>

          Als Ergebnis erhalte ich immer nur
          1

          Danke
          Conan

          1. echo $begrüßung;

            weiterhin habe ich folgendes getestet.

            <form action="test.php" method="post" name="formtest">
            <button name="btn[1]" type="submit" value="1"></button>
            <button name="btn[2]" type="submit" value="2"></button>
            </form>
            <?php
            echo key($_POST['btn']);
            ?>

            Als Ergebnis erhalte ich immer nur
            1

            Wenn du das so sagst, dann glaube ich mich zu erinnern, dass das noch ein weiterer IE-Fehler im Zusammenhang mit <button>-Elementen war. Lass dir mal mit print_r($_POST); anzeigen was dir dieser [zensiert] so sendet wenn du einen von beiden Buttons betätigst. Ganz toll, nicht wahr?

            Ich hab aber noch einen Vorschlag:

            <form action="" method="post" name="formtest">
              <input name="btn[1]" type="submit" value="">
              <input name="btn[2]" type="submit" value="">
            </form>
            <?php
            echo key($_POST['btn']);
            ?>

            echo "$verabschiedung $name";

            1. Hi,

              und ein großes Danke!

              Ich hab aber noch einen Vorschlag:

              Und der Vorschlag funktioniert aber warum??
              Ich bekomme jetzt 1 b.z.w. 2 zurück also genau das was ich möchte.

              Was ist den eigentlich der Grund value="" oder action=""?

              Danke
              Conan

              1. echo $begrüßung;

                Und der Vorschlag funktioniert aber warum??

                name="btn[x]" ist der "Trick". PHP legt im $_POST-Array aufgrund der Schreibweise mit "[x]" keinen einfachen String sondern ein Array mit einem Element an. Der Schlüssel ist das x und der Wert ist der Inhalt von value, welcher ja, von dir so gewollt, leer ist. Lass dir mal das $_POST-Array mit print_r() anzeigen, dann kannst du sehen, wie das aussieht.

                Und key() ermittelt den Schlüssel des aktuellen Elements eines Arrays, also das x (siehe PHP-Handbuch).

                Es würde auch tun, wenn der Name btn_x wäre. Allerdings müsstest du dann das gesamte $_POST-Array nach einem Schlüssel durchkämmen, der mit btn_ anfängt, um dann den dahinterstehenden Zahlenwert zu extrahieren. Recht umständlich, würd ich meinen...

                echo "$verabschiedung $name";

  2. hi,

    Ich möchte einen button type submit oder einen input type submit erstellen.
    Dabei soll der Button keinen Text anzeigen (einfach ohne alles), jedoch einen Absendewert enthalten den ich dann mit php auswerten kann.

    Beispiel:
    <button type="submit" name="time" class="time" value="1"></button>

    Das scheint nicht zu klappen denn
    $_POST['time'] ist leer

    Geht das überhaupt?

    Das war jetzt die eine von den zwei von dir selbst genannten Alternativen.

    Wie sah dein Text mit der anderen aus?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hi,

      Das war jetzt die eine von den zwei von dir selbst genannten Alternativen.

      Wie sah dein Text mit der anderen aus?

      <input type="submit" name="time" ????value=????>

      Das ist die Frage da value ja dann auch mit angezeigt wird.

      mfg
      Conan

  3. echo $begrüßung;

    <button type="submit" name="time" class="time" value="1"></button>

    Das scheint nicht zu klappen denn

    $_POST['time'] ist leer

    Lass mich raten: Du testet mit dem IE.

    Der IE hat einen Bug, was die Übertragung der Werte eines <button type="submit" value="value">Buttoninhalt</button> betrifft. Der sendet nämlich "Buttoninhalt" (inkl. HTML-Zeuchs) und nicht "value". Er macht dies aber dann doch noch richtig, wenn man den value per JavaScript setzt.

    Geht das überhaupt?

    Verwende nicht <button> Wenn du nicht dessen Eingeschaft, mehr als nur einfachen Text anzuzeigen, benötigst.

    echo "$verabschiedung $name";

    1. Hi,

      Lass mich raten: Du testet mit dem IE.

      volltreffer

      Er macht dies aber dann doch noch richtig, wenn man den value per JavaScript setzt.

      Da ich den Value aus einer Datenbank hole ( id eines Datensatzes ) und somit bereits beim erstellen der Button einfüge wird das schwierig werden oder hast du da einen Lösungsansatz?

      Verwende nicht <button> Wenn du nicht dessen Eingeschaft, mehr als nur einfachen Text anzuzeigen, benötigst.

      ??? Wie meinst du das Button nur einfachen Text anzeigen ???

      mfg
      Conan