Margrith: Button (Input Type)

Hallo Forianer!

Ich habe eine einzelne Seite (index.php) mit PHP erstellt. Diese Seite lädt einen Include (kontaktform.php) mit einem Kontakt-Formular.

Gebe ich meine Daten ein und betätige ich mit der Maus den "Abschicken-Button", so kann ich den Wert des Buttons in der index.php Datei ausgeben. Drücke ich aber nur die Entertaste, dann gehen die Daten verloren. Warum das? Ich habe lange den möglichen Fehler gesucht. Doch das ganze macht für mich keinen Sinn!!!?
Liegt der Fehler vielleicht hier: <FORM action="index.php" method=post>?  Diese Zeile steht in der kontaktform.php Datei.

Ich bin für jeden Input sehr dankbar, da ich echt nicht mehr weiter weis.

Danke & Grüsse
Margrith

  1. Hi,

    Gebe ich meine Daten ein und betätige ich mit der Maus den "Abschicken-Button", so kann ich den Wert des Buttons in der index.php Datei ausgeben. Drücke ich aber nur die Entertaste, dann gehen die Daten verloren. Warum das? Ich habe lange den möglichen Fehler gesucht. Doch das ganze macht für mich keinen Sinn!!!?
    Liegt der Fehler vielleicht hier: <FORM action="index.php" method=post>?  Diese Zeile steht in der kontaktform.php Datei.

    Wann drückst du die Entertaste? Schon im ersten Eingabefeld, bevor alles weitere ausgefüllt ist?
    Die meisten Browser schicken das Formular ab, wenn man die Entertaste drückt. Welchen Browser benutzt du?

    Der Yeti

    --
    Habe nun, ach! WInfo, BWL, und Mathe, Und leider auch Info!
    Durchaus studiert, mit heißem Bemühn. Da steh' ich nun, ich armer Thor!
    Und bin so klug als wie zuvor!
    sh:( fo:| ch:? rl:? br:< n4:& ie:( mo:| va:| de:[ zu:) fl:| ss:) ls:< js:|
    [Link:http://community.de.selfhtml.org/fanprojekte/selfcode.htm]
    1. Wann drückst du die Entertaste? Schon im ersten Eingabefeld, bevor alles weitere ausgefüllt ist?

      Nein, drücke die Enterteste erst, wenn alle Felder ausgefüllt sind.
      -> Das gleiche Problem habe ich auch, wenn das Formular nur 1 Eingabefeld hat.

      Welchen Browser benutzt du?

      Ich benutze den Internet Explorer!

      1. Hi,

        Nein, drücke die Enterteste erst, wenn alle Felder ausgefüllt sind.
        -> Das gleiche Problem habe ich auch, wenn das Formular nur 1 Eingabefeld hat.

        Ich glaube, ich hatte dich eben nicht richtig verstanden, sorry. Du willst den Wert (value) des Submitbuttons haben? Warum?
        Hier würde vielleicht ein <input type="hidden">-Tag helfen, um versteckt Informationen zu übermitteln. Oder hast du mehrere Buttons zum Abschicken und willst wissen, welcher davon geklickt wurde?
        Ansonsten wäre meine Vermutung, dass Enter halt einfach das Formular abschickt und natürlich nicht über den Submitbutton geht. Damit kann auch nicht der Wert des Buttons gesetzt werden.

        Der Yeti

        --
        Habe nun, ach! WInfo, BWL, und Mathe, Und leider auch Info!
        Durchaus studiert, mit heißem Bemühn. Da steh' ich nun, ich armer Thor!
        Und bin so klug als wie zuvor!
        sh:( fo:| ch:? rl:? br:< n4:& ie:( mo:| va:| de:[ zu:) fl:| ss:) ls:< js:|
        [Link:http://community.de.selfhtml.org/fanprojekte/selfcode.htm]
        1. Du willst den Wert (value) des Submitbuttons haben? Warum?

          Um rauszufinden, warum es mit dem Klick mit der Maus funktioniert.
          Aber mit Enter nicht. Ansonsten macht dieser Wert für mich keinen Sinn.

          Oder hast du mehrere Buttons zum Abschicken und willst wissen, welcher davon geklickt wurde?

          Nein, wir können einfachheitshalber von einem Formularfeld und dem Button ausgehen. Ansonsten ist ausser Text nichts vorhanden.

          Margrith

          1. Hi,

            Um rauszufinden, warum es mit dem Klick mit der Maus funktioniert.
            Aber mit Enter nicht. Ansonsten macht dieser Wert für mich keinen Sinn.

            Okay. Da wieder mein Ansatz: Durch Enter wird der Button nicht geklickt, sondern das Formular einfach abgeschickt. Daher wird auch nicht der Wert zugewiesen, sondern nur wenn auch wirklich der Button geklickt wurde.

            Der Yeti

            --
            Habe nun, ach! WInfo, BWL, und Mathe, Und leider auch Info!
            Durchaus studiert, mit heißem Bemühn. Da steh' ich nun, ich armer Thor!
            Und bin so klug als wie zuvor!
            sh:( fo:| ch:? rl:? br:< n4:& ie:( mo:| va:| de:[ zu:) fl:| ss:) ls:< js:|
            [Link:http://community.de.selfhtml.org/fanprojekte/selfcode.htm]
            1. Probiert es selber aus: http://www.gate-2-world.com/index.php

              Hier noch der Quellcode zu "index.php":

              <html>

              <head>
              <meta http-equiv="Content-Language" content="de-ch">

              <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
              <title>Test</title>
              </head>

              <body>

              <p>Test-Formular</p>
              <br><br>
              <? echo"$Button1"; ?>
              <br><br>
              <? include('kontaktform.php'); ?>

              </body>

              </html>

              Hier noch der Quellcode zu "kontaktform.php":

              <FORM action="index.php" method=post>
                <input type="text" name="T1" size="20"><input type="submit" value="Abschicken" name="Button1"></p>
              </form>

      2. Wann drückst du die Entertaste? Schon im ersten Eingabefeld, bevor alles weitere ausgefüllt ist?

        Nein, drücke die Enterteste erst, wenn alle Felder ausgefüllt sind.
        -> Das gleiche Problem habe ich auch, wenn das Formular nur 1 Eingabefeld hat.

        Hey, so ein Verhalten kommt mir sehr bekannt vor. Meine (momentan leider abgeschaltete) Webseite benutzt in der Navigation eine Suche, bei der ein bestimmter Browser auch nur dann den Button-Wert überträgt, wenn man diesen explizit anklickt. Zufälligerweise ist dies genau

        Ich benutze den Internet Explorer!

        Ich weiß jetzt nicht, ob das ein IE-Bug oder -Feature ist, weil beim Absenden des Formulars betätigst du ja nicht den Absenden-Button, schließlich könnte ein Formular über mehrere dieser Art verfügen. Ich glaube, <input type="hidden"> ist deine einzige wirklich sinnvolle Alternative.

        Grüße, Robert

  2. Hallo!

    Du willst die Aufschrift des AbsendeButtons ausgeben lassen, oder welchen Wert? Steht der Submit-Button im Formular und hat er die Eigenschaft type='submit'?

    Nico

    1. Hallo Nico

      Der Code zum Button lautet: <input type="submit" value="Abschicken" name="Button1">
      Auf index.php habe ich folgenden Code, um den Wert des Buttons auszulesen: <? echo"$Button1"; ?>

      Hat es etwas damit zu tun? Ich glaube nicht....

      Danke und Gruss
      Margrith

      1. Hallo!

        um den Wert des Buttons auszulesen: <? echo"$Button1"; ?>

        Naja $Button1 wäre hier also bei dir eine Variable, die im ProgrammCode definiert sein müsste. Wenn sie als $Button1=$_POST[Button1]; definiert ist, müsste es eigentlich gehen.

        Nico

        1. Wenn sie als $Button1=$_POST[Button1]; definiert ist, müsste es eigentlich gehen.

          Danke, ich probiers gleich aus...

        2. Hi,

          um den Wert des Buttons auszulesen: <? echo"$Button1"; ?>
          Naja $Button1 wäre hier also bei dir eine Variable, die im ProgrammCode definiert sein müsste. Wenn sie als $Button1=$_POST[Button1]; definiert ist, müsste es eigentlich gehen.

          Wahrscheinlicher ist aber, dass bei ihr register_globals auf on ist und sie sich gar keine Gedanken über Portabilität macht. ;-)

          <klugscheiß>Außerdem wird dir dieser Code eine Warnung ausschmeißen, in der Art "Konstante Button1 nicht definiert, nehme String an". Also lieber $_POST["Button1"];</klugscheiß>

          Der Yeti

          --
          Habe nun, ach! WInfo, BWL, und Mathe, Und leider auch Info!
          Durchaus studiert, mit heißem Bemühn. Da steh' ich nun, ich armer Thor!
          Und bin so klug als wie zuvor!
          sh:( fo:| ch:? rl:? br:< n4:& ie:( mo:| va:| de:[ zu:) fl:| ss:) ls:< js:|
          [Link:http://community.de.selfhtml.org/fanprojekte/selfcode.htm]
          1. Hallo!

            Also lieber $_POST["Button1"]

            Ja. das wäre exakter, aber wenn ich das bei mir so mache geht das auch ohne die "".

            Nico

            1. Hi,

              Also lieber $_POST["Button1"]
              Ja. das wäre exakter, aber wenn ich das bei mir so mache geht das auch ohne die "".

              Dann hast du bestimmt alle Warnungen abgeschaltet (oder ignorierst sie). Button1 ist eine (nicht definierte) Konstante, während "Button1" der String ist, den du wirklich übergeben willst. Dass PHP kulanterweise nicht definierte Konstanten als Strings interpretiert, sollte einen nicht zu unsauberem Programmieren verleiten.

              Der Yeti

              --
              Habe nun, ach! WInfo, BWL, und Mathe, Und leider auch Info!
              Durchaus studiert, mit heißem Bemühn. Da steh' ich nun, ich armer Thor!
              Und bin so klug als wie zuvor!
              sh:( fo:| ch:? rl:? br:< n4:& ie:( mo:| va:| de:[ zu:) fl:| ss:) ls:< js:|
              [Link:http://community.de.selfhtml.org/fanprojekte/selfcode.htm]
  3. Probiert es selber aus: http://www.gate-2-world.com/index.php

    Hier noch der Quellcode zu "index.php":

    <html>

    <head>
    <meta http-equiv="Content-Language" content="de-ch">

    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Test</title>
    </head>

    <body>

    <p>Test-Formular</p>
    <br><br>
    <? echo"$Button1"; ?>
    <br><br>
    <? include('kontaktform.php'); ?>

    </body>

    </html>

    Hier noch der Quellcode zu "kontaktform.php":

    <FORM action="index.php" method=post>
      <input type="text" name="T1" size="20"><input type="submit" value="Abschicken" name="Button1"></p>
    </form>

    1. Hallo!

      Das liegt am IE. Probier doch mal method="post" Und dann noch das mit dem $_POST...

      Nico

      1. Hi,

        Das liegt am IE. Probier doch mal method="post" Und dann noch das mit dem $_POST...

        Jo, kann ich bestätigen. Im Opera 7.54 klappt es wie gewünscht, im IE 5.00 steht "Abschicken" nicht da.

        Der Yeti

        --
        Habe nun, ach! WInfo, BWL, und Mathe, Und leider auch Info!
        Durchaus studiert, mit heißem Bemühn. Da steh' ich nun, ich armer Thor!
        Und bin so klug als wie zuvor!
        sh:( fo:| ch:? rl:? br:< n4:& ie:( mo:| va:| de:[ zu:) fl:| ss:) ls:< js:|
        [Link:http://community.de.selfhtml.org/fanprojekte/selfcode.htm]