tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
12
ZUGRIFFE
9093
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    webdesign webdesign ist offline Mitglied Silber
    Registriert seit
    Aug 2004
    Ort
    Basel
    Beiträge
    82
    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
     
    electromusic
    webdesign
    www.dirtycat.ch

  2. #2
    Registriert seit
    Jul 2003
    Ort
    Gronau, Nordrhein-Westfalen, Germany, Germany
    Beiträge
    634
    Per Get villeicht...

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

  3. #3
    Avatar von Sebastian Wramba
    Sebastian Wramba Sebastian Wramba ist offline Mitglied Smaragd
    Registriert seit
    Sep 2001
    Ort
    Essen (NRW)
    Beiträge
    1.218
    Wie wär's denn mit einem Hidden-Field?

    Code :
    1
    
    <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.
     
    <Florian> Ihr seit alles so Real Life Ruler, oder?
    <SirRobin> Lineale?

  4. #4
    ctp ctp ist offline Mitglied
    Registriert seit
    Feb 2004
    Beiträge
    12
    Oder vielleicht per CSS. Da kannst du ihn ja so aussehen lassen wie Text...
     

  5. #5
    webdesign webdesign ist offline Mitglied Silber
    Registriert seit
    Aug 2004
    Ort
    Basel
    Beiträge
    82
    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
     
    electromusic
    webdesign
    www.dirtycat.ch

  6. #6
    webdesign webdesign ist offline Mitglied Silber
    Registriert seit
    Aug 2004
    Ort
    Basel
    Beiträge
    82
    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
     
    electromusic
    webdesign
    www.dirtycat.ch

  7. #7
    Registriert seit
    Jul 2003
    Ort
    Gronau, Nordrhein-Westfalen, Germany, Germany
    Beiträge
    634
    Meine Methode funktioniert zu 100%...
    Grafik musst du statt
    Code :
    1
    
    <input type="submit"...>
    einfach ein
    Code :
    1
    
    <input type="image"...>
    nehmen!

    Also nochmal zum Mitschreiben:
    Lösung mit einem Bild als Submit-Button
    PHP-Code:
    <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-Code:
    <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-Code:
    <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
    Geändert von Operator_Jon (25.10.04 um 18:51 Uhr)
     

  8. #8
    webdesign webdesign ist offline Mitglied Silber
    Registriert seit
    Aug 2004
    Ort
    Basel
    Beiträge
    82
    Dankeschön
    Ich versuche es dann mal mit der Grafik Variante. Die GET Methode hatte nicht funktioniert, obwohl sie eigentlich logisch wäre. Tja.
     
    electromusic
    webdesign
    www.dirtycat.ch

  9. #9
    Registriert seit
    Dec 2001
    Ort
    Köln
    Beiträge
    796
    Zitat Zitat von webdesign
    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 ...
     
    You want me to be, something I can never ever be!

  10. #10
    webdesign webdesign ist offline Mitglied Silber
    Registriert seit
    Aug 2004
    Ort
    Basel
    Beiträge
    82
    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
     
    electromusic
    webdesign
    www.dirtycat.ch

  11. #11
    Registriert seit
    Dec 2001
    Ort
    Köln
    Beiträge
    796
    Zitat Zitat von webdesign
    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.
    Das brauchst Du auch nicht. In der HTML-Datei, die das Formular enthält, prüfst Du ob (sofern vorhande) Pflichtfelder ausgefüllt sind. Willst Du die Daten noch genauer prüfen (z.b. E-Mail Adresse, PLZ oder andere Daten) prüfst Du diese natürlich auch auf Richtigkeit.

    Hat der User alles richtig ausgefüllt, schickst Du das Formular (an eine externe Datei) ab. Und nicht vorher. Im PHP-Script, was den Datenbank-Eintrag o.ä. vornimmt, kannst Du aus Sicherheit nochmal die Daten prüfen, ob Sie generell ausgefüllt sind.

    Warum zweimal prüfen? Ganz einfach: Der User sieht BEVOR er das Formular abschicken will, ob er eventuell Eingaben vergessen hat oder eingaben falsch angegeben hat (zu kurze PLZ, E-Mail Adresse ist falsch usw) und nicht erst nachdem er das Formular bereits abgeschickt hat. Stichwort: Usability

    Natürlich kannst Du die Prüfung im Script auch weglassen, aber sicher ist nunmal sicher. So vermeidest Du mögliche Leereinträge in der Datenbank oder andere dadurch resultierende Fehler. Für denn Fall, dass Du im Script prüfst und trotz der JavaScript-Prüfung einen Fehler feststellst, gibst Du einfach eine entsprechende Fehlermeldung aus, die zusätzlich noch einen "Zurück"-Link enthält. Leitest Du mittels JavaScript auf die vorige Formularseite, sind auch alle eingebenen Werte vom User noch im Formular enthalten (außer als Passwort deklarierte Felder).

    Nur fürs nächste mal ;o)
     
    You want me to be, something I can never ever be!

  12. #12
    webdesign webdesign ist offline Mitglied Silber
    Registriert seit
    Aug 2004
    Ort
    Basel
    Beiträge
    82
    Hallo Zusammen
    Ich weiss auch nicht was ich falsch mache, aber bei mir funktioniert einfach nur die Methode mit dem normalen Button. Das mit dem Bild oder mit dem Hidden Feld geht leider auch nicht. Ich weiss nicht genau an was es liegt, aber ich denke, dass es daran liegen muss, dass beim Javascript Befehle:javascript:document.form.submit()
    die Formulardaten nicht übergeben werden, denn wenn sie übergeben geworden wären, dann hätte auch meine Fehlerabfrage funktionieren müssen.

    Ich versuche es mal, wenn ich das hidden Feld anders benenne, vielleicht geht es dann.

    "Das Problem ist: Wenn ich die Fehlerabfrage im gleichen Script mache, muss ich ein
    if ($submit) benutzen. Wenn ich diese jedoch in einem externen Script mache, brauche ich das nicht. Da ich aber bei einer falschen Eingabe die Fehlerausgabe per Variable welche sich verändert beim Formular selbst anzeigen möchte, muss ich die Abfrage in der gleichen Datei machen, da ich nicht weiss wie man in einer externen PHP Datei eine Variable in einer anderen Datei ändern kann. Oder könnt ihr mir dabei helfen?

    Konkret geht es darum:

    Ich habe ein Formular, ganz einfach, wo man nur die E-Mail Adresse eingeben kann. Wenn die E-Mail Adresse falsch oder nicht eingegeben wurde und das Formular trotzdem abgeschickt wurde, möchte ich, dass sich ein Pop Up Fenster öffnet in welchem die Fehlerausgabe kommt. Ich habe das Problem so gelöst, dass ich im body-tag eine PHP- Variable eingesetzt habe: <? echo("$onload")?>, welche ich am Anfang auf null setze. Wenn jetzt beim Formular auf submit gedrückt wurde, prüfe ich ob die Daten richtig eingegeben wurden. Wenn die Daten falsch sind, dann gebe ich der Variable folgenden Wert: $onload='onload="error()"';
    Wenn alle Daten richtig sind, sende ich die Daten per email an eine mailadresse und übergebe folgenden Wert der Variable: $onload='onload="danke()"';
    Irgendwie funktioniert diese Art bei mir nur mit einem Submitt Button. Mit einem Hidden Feld geht es irgendwie auch nicht, obwohl es theoretisch gehen müsste. Ich frage mich langsam, ob es denn wirklich nur mit einem Button geht, oder ob mich mein Browser einfach verarscht

    So, ich hoffe, dass ich mein Problem gut geschildert habe und hoffe, dass ihr mir helfen könnt.

    Gruss Jonas
    Geändert von webdesign (29.10.04 um 14:01 Uhr)
     
    electromusic
    webdesign
    www.dirtycat.ch

  13. #13
    webdesign webdesign ist offline Mitglied Silber
    Registriert seit
    Aug 2004
    Ort
    Basel
    Beiträge
    82
    Judihuiiiiiiiiiiiiii
    Es geht!
    Es lag daran,dass ich das Hidden Feld unbennen musste. Irgendwie gab es Probleme damit, dass ich das hidden Feld submit nannte. Ich habe es jetzt absenden genannt und es funktioniert tadellos.
    Tja, was so kleine Veränderungen bewirken können, einfach genial

    Vielen Dank an alle, ihr habt mir sehr viel weitergeholfen.
     
    electromusic
    webdesign
    www.dirtycat.ch

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 09.11.10, 23:50
  2. Formular mit 2 x submit button
    Von uwej72 im Forum HTML-Editoren
    Antworten: 1
    Letzter Beitrag: 03.11.10, 13:35
  3. Formular Problem mit 2 Submit Button
    Von Giovanni im Forum PHP
    Antworten: 12
    Letzter Beitrag: 07.11.07, 09:41
  4. Mehrere SUBMIT Button in ein Formular
    Von Tabuk im Forum PHP
    Antworten: 7
    Letzter Beitrag: 04.05.05, 15:36
  5. Formular submit button ...
    Von EraserOfEarth im Forum HTML & XHTML
    Antworten: 5
    Letzter Beitrag: 27.07.03, 18:00