Submit ohne Button in Formular

webdesign

Mitglied
In meinem PHP Script für mein Formular brauche ich den Befehl
if($submit)...
Ich finde jedoch den submitt button beim Formular sehr hässlich und würde den gerne durch text ersetzen. In JavaScript gibt es ja eine Methode, doch bei mir erkennt das PHP Script diesen JavaScript Befehl nicht als Submitt.
Gibt es da in PHP eine Lösung oder sonst irgend eine Art dieses Problem zu lösen?

Vielen Dank schon mal
Gruss Jonas
 
Re: Submitt ohne Button in Formular

Per Get villeicht...

PHP:
<?
if ($_REQUEST['submit'] == 1) {
  //...
}
?>
<form name="form" action="<?=$_SERVER['PHP_SELF']?>?submit=1" method="POST">
  <a href="javascript:document.form.submit()">Text</a>
</form>
:)
 
Re: Submitt ohne Button in Formular

Wie wär's denn mit einem Hidden-Field?

Code:
<input type="hidden" name="submit" value="foo">


Operator_Jon: Ein Formular per GET übermitteln ist in den seltensten Fällen sinnvoll, da eine URL auf eine bestimmte Zeichenlänge beschränkt ist.
 
Re: Submitt ohne Button in Formular

Oder vielleicht per CSS. Da kannst du ihn ja so aussehen lassen wie Text...
 
Re: Submitt ohne Button in Formular

Vielen Dank für die schnellen Antworten.
Mit einem hidden button sollte es eigentlich gehen. Dumm dass ich nicht selber darauf gekommen bin, mal schaun.

Mit css hab ich's schon versucht. Geht aber leider nicht in jedem Browser und darum leider keine gute Lösung.
Danke

Gruss Jonas
 
Re: Submitt ohne Button in Formular

Hallo zusammen
Ich habe schon alles ausprobiert, geht leider nichts, SCH*****!
Kann mir jemand weiter helfen? Gibt es vielleicht eine Möglichkeit anstatt ein submitt button eine Grafik zu laden?

Vielen Dank
Gruss Jonas
 
Re: Submitt ohne Button in Formular

Meine Methode funktioniert zu 100%...
Grafik musst du statt
Code:
<input type="submit"...>
einfach ein
Code:
<input type="image"...>
nehmen!

Also nochmal zum Mitschreiben:
Lösung mit einem Bild als Submit-Button
PHP:
<html>
    <head>
        <title>Test</title>
    </head>
    <body>
        <?
        if ($_REQUEST['submit']) {
            //Aktion...
        }
        ?>
        <form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
            <input type="image" name="submit" src="...">
        </form>
    </body>
</html>
Lösung mit einem Hiddenfeld:
PHP:
<html>
    <head>
        <title>Test</title>
    </head>
    <body>
        <?
        if ($_REQUEST['submit']) {
            //Aktion...
        }
        ?>
        <form name="form" action="<?=$_SERVER['PHP_SELF']?>" method="POST">
            <input type="hidden" name="submit" value="foo"><br>
            <a href="javascript:document.form.submit()">Text</a>
        </form>
    </body>
</html>
Lösung mit Get-Parameter
PHP:
<html>
    <head>
        <title>Test</title>
    </head>
    <body>
        <?
        if ($_REQUEST['submit']) {
            //Aktion...
        }
        ?>
        <form name="form" action="<?=$_SERVER['PHP_SELF']?>?submit=1" method="POST">
            <a href="javascript:document.form.submit()">Text</a>
        </form>
    </body>
</html>

Du siehst:
Ganz einfach das Ganze :)
 
Zuletzt bearbeitet:
Re: Submitt ohne Button in Formular

Dankeschön
Ich versuche es dann mal mit der Grafik Variante. Die GET Methode hatte nicht funktioniert, obwohl sie eigentlich logisch wäre. Tja.
 
Re: Submitt ohne Button in Formular

webdesign hat gesagt.:
Hallo zusammen
Ich habe schon alles ausprobiert, geht leider nichts, SCH*****!
Also mit dem Hidden-Field muss es funktionieren. Das Hidden-Field ist ja quasi nichts anderes als ein weiteres Formular-Element, was beim abschicken in das globale $_POST-Array geschrieben wird. Und genau das passiert ja mit einem Button auch so.

Die Methode per GET würde ich auf keinen Fall wählen. Da der Parameter, der festlegt, ob das Formular abgesendet wurde oder nicht, in diesem Fall per URL übergeben wird. Das ganze lässt sich dann ganz einfach ungehen, in dem manuell in der URL den Parameter übergeben wird. Somit ist die Abfrage eigentlich sinnlos.

Außerdem: Warum muss eigentlich das Formular und die Formular-Logik (sprich: das Script auf welches das Formular postet) in ein und der selben Datei liegen? Mach doch einfach einmal ein normales HTML-Formular wo Du als Ziel-URL ein PHP-Script angibst, was die Daten aus dem Formular verarbeitet.

Nur mal so als Hinweis/Anregung ... :)
 
Hallo Chino

Danke für deine Antwort.
Ich weiss auch nicht, wieso das mit dem hidden feld nicht funktioniert, hatte einfach noch keine Zeit dies ausführlich zu testen. Es musste jetzt einfach sehr schnell dieses Formular aufs Netz, darum habe ich nun mal kurzfristig die einfachste Variante genommen. Ich habe bewusst alles in eine Datei gepackt und keine externe Datei zum ausführen des Formulars gewählt. Ich möchte die Fehlerausgabe direkt beim Formular haben und finde es einfach nicht schön bei der externen Datei als Fehlermeldung das ganze Formular per echo noch einmal auszugeben.

Trotzdem, vielen Dank für deine Antwort. Ich werde es später noch einmal mit dem Hidden Feld versuchen.

Gruss Jonas
 
Zurück