Button (Input Type)
Margrith
- php
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
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
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!
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
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
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
Probiert es selber aus: http://www.gate-2-world.com/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>
<FORM action="index.php" method=post>
<input type="text" name="T1" size="20"><input type="submit" value="Abschicken" name="Button1"></p>
</form>
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
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
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
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
Wenn sie als $Button1=$_POST[Button1]; definiert ist, müsste es eigentlich gehen.
Danke, ich probiers gleich aus...
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
Hallo!
Also lieber $_POST["Button1"]
Ja. das wäre exakter, aber wenn ich das bei mir so mache geht das auch ohne die "".
Nico
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
Probiert es selber aus: http://www.gate-2-world.com/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>
<FORM action="index.php" method=post>
<input type="text" name="T1" size="20"><input type="submit" value="Abschicken" name="Button1"></p>
</form>
Hallo!
Das liegt am IE. Probier doch mal method="post" Und dann noch das mit dem $_POST...
Nico
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