php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.01.2011, 20:52  
Erfahrener Benutzer
 
Registriert seit: 08.10.2010
Beiträge: 200
PHP-Kenntnisse:
Anfänger
djsky01 ist zur Zeit noch ein unbeschriebenes Blatt
Standard generelle Frage zum abschicken eines Formulars

Guten Abend,
ich habe ein Formular, bestehend aus einem einzeiligenTextfeld, einer Selectbox und einem Submit-Button zum abschicken.
Das Formular wird per $_POST an eine php-seite gesendet und dort werden die Eingaben dementsprechend ausgewertet.
Soweit so gut.
Klicke ich brav auf den Button, wird alles korrekt ausgewertet.
Drücke ich aber statt auf den "Suchen"-Button auf die Enter-Taste, ist die Auswertung des Ergebnisses falsch.
Wird beim Drücken der Enter-Taste das Formular irgendwie anders abgeschickt als beim klick auf den Button??
Und wenn ja, wie kann ich dass dann machen, dass auch bei Enter-Taste richtig abgesendet wird?
djsky01 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.01.2011, 20:54  
Erfahrener Benutzer
 
Registriert seit: 07.06.2008
Beiträge: 992
PHP-Kenntnisse:
Fortgeschritten
Frank befindet sich auf einem aufstrebenden Ast
Frank eine Nachricht über ICQ schicken Frank eine Nachricht über MSN schicken Frank eine Nachricht über Yahoo! schicken
Standard

Inwiefern _falsch_ ?
__________________
Frank ist offline   Mit Zitat antworten
Alt 20.01.2011, 20:59  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.267
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Ja, der Button wird nicht zwingend mitübertragen. Deshalb prüft man ein Formular auch nicht als "abgeschickt", in dem man den Namen des Buttonfeldes auf Existenz prüft.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 20.01.2011, 21:28  
Erfahrener Benutzer
 
Registriert seit: 08.10.2010
Beiträge: 200
PHP-Kenntnisse:
Anfänger
djsky01 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

aha, wieder was dazu gelernt.
Das ist wahrscheinlich auch mein Fehler, weil ich den Button abprüfe.
Wie kann ich denn sonst abprüfen ob das Formular geschickt wurde??
djsky01 ist offline   Mit Zitat antworten
Alt 20.01.2011, 21:32  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.267
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

In dem du prüfst, ob es sich um einen $_POST-Request handelt, z.B. mit !empty($_POST). Das setzt aber voraus, dass auch POST-Werte übertragen wurden, was bei einem POST-Request nicht zwingend der Fall sein muss (auch wenn man davon ausgehen kann). Soweit ich weiß gibt es im $_SERVER einen Key, der REQUEST_METHOD oder so ähnlich heißt. Mir persönlich reicht !empty($_POST).

Alternativ kannst du deinen Formularen ein Hiddenfeld spendieren, auf das du dann prüfst. Denn normale Eingabefelder (auch versteckte) werden immer übertragen, egal ob das Formular mit ENTER oder Buttonklick abgeschickt wurde.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 20.01.2011, 21:32  
Erfahrener Benutzer
 
Registriert seit: 08.10.2010
Beiträge: 200
PHP-Kenntnisse:
Anfänger
djsky01 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@frank:
Nun, wenn ich den Button klicke, übergebe ich damit zum beispiel einen Wert, mit dem ich dann auf der nächsten Seite eben den Wert in einer selectbox als selected markiere.
Drücke ich auf die Entertaste, wird mir der richtige Wert mit gegeben, aber was total falsches selectiert, weil genau diese Anweisung eben in der Abfrage drinn steckt, die Chriz erwähnt hat.
Das Problem wird also wahrscheinlich irgendwie dadurch zu lösen sein, dass ich anders abfrage, ob ein formular geschickt wurde.
Bisher war meine Abfrage eben:
if(isset($_POST['Button']))
djsky01 ist offline   Mit Zitat antworten
Alt 20.01.2011, 21:33  
Erfahrener Benutzer
 
Registriert seit: 08.10.2010
Beiträge: 200
PHP-Kenntnisse:
Anfänger
djsky01 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

!empty($_POST)
Interessant, werde ich gleich ausprobieren.
Danke
djsky01 ist offline   Mit Zitat antworten
Alt 20.01.2011, 21:34  
Erfahrener Benutzer
 
Registriert seit: 07.06.2008
Beiträge: 992
PHP-Kenntnisse:
Fortgeschritten
Frank befindet sich auf einem aufstrebenden Ast
Frank eine Nachricht über ICQ schicken Frank eine Nachricht über MSN schicken Frank eine Nachricht über Yahoo! schicken
Standard

@djsky01

Ich wusste von anfang an was du meinst, wozu ich dich verleiten wollte war, in deinen Threads ordentliche Fehlerbeschreibungen zu liefern.

//Edit
Es gibt ein Edit-Button, du brauchst keine Doppelposts machen...
__________________
Frank ist offline   Mit Zitat antworten
Alt 20.01.2011, 21:37  
Erfahrener Benutzer
 
Registriert seit: 08.10.2010
Beiträge: 200
PHP-Kenntnisse:
Anfänger
djsky01 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@Chriz: Tausend Millionen, einhundertfünfundsechzigtausenddreihundertsiebenu ndzwanzig mal
DANKE DANKE DANKE

edit:
@ Frank: Siehste, gelernt
Auch dir "EIN" Dankeschön.
djsky01 ist offline   Mit Zitat antworten
Alt 20.01.2011, 22:07  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Ich mache in JEDES Formular einen hidden-Input mit dem Namen 'formular' und einem value, welches das formular identifiziert, z.B.
Code:
<input type = "hidden"  name = "formular" value = "anmelden">
oder
<input type = "hidden"  name = "formular" value = "einloggen">
Im PHP reicht es dann zwar, das name-Attribut abzufragen:

PHP-Code:
if ( isset($_POST['formular'] ) {
  
// Formular wurde abgeschickt

aber man kann auch noch den value mit in die Abfrage hieneinnehmen. So kann man einfach Seiten mit mehreren Formularen verarbeiten und hat zugleich auch ein wenig automatische Dokumentation:

PHP-Code:
if ( isset($_POST['formular'] and $_POST['formular'] == 'einloggen' ) {
  
// Formular "Einloggen" wurde abgeschickt

__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] &quot;Form action&quot; soll zweites Formular abschicken Farlif PHP Tipps 2010 7 19.08.2010 11:27
Eine Frage zum guten Code-Layout SilentSight JavaScript, Ajax und mehr 3 14.07.2010 09:18
[Erledigt] Frage zu JOIN Befehl und dem Auslesen desselben apo PHP Tipps 2010 11 13.06.2010 19:32
URL Frage Eclipse16V PHP Tipps 2009 8 23.02.2009 17:02
Hallo eine Frage in sachen Forensysteme spikytux HTML, Usability und Barrierefreiheit 11 03.01.2009 15:06
automatisches abschicken eines Formulars GELight HTML, Usability und Barrierefreiheit 2 10.04.2006 19:49
Technische Frage zur Realisation einer Online-Umfrage Stefano PHP Tipps 2005 5 16.03.2005 17:39
Frage zu einer Liste? HTML, Usability und Barrierefreiheit 2 15.02.2005 16:56
Hallo und Frage zu dynamischer Veränderung in Textfeldern. PHP Tipps 2004-2 2 27.12.2004 22:29
[Erledigt] Frage zur Funkrionen? PHP Tipps 2004-2 10 01.12.2004 09:42
Kurze Frage an die Php Profis PHP Tipps 2004-2 11 24.11.2004 17:38
Frage zur Formatierung von Text obi PHP Tipps 2004 1 03.11.2004 13:35
automatisches abschicken eines formulares?!? PHP Tipps 2004 5 27.10.2004 12:33
ein alert fenster beim abschicken eines formulars Sclot HTML, Usability und Barrierefreiheit 1 13.10.2004 13:20
[Erledigt] Frage! PHP Tipps 2004 4 27.07.2004 11:25


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:56 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum