Problem beim Formularabschicken

  • Guten Tag,


    Heute habe ich mal ein Problem mit einem Formular.
    Also..ich habe mir ein Formular in einer Funktion erstellt. So weit so gut..Nun wollte ich das Formular zum test einmal abschicken und bekomme einen 404Fehler...mhn..als ich mir die URL ansah stand dort das halbe Formular drinn...kann mir jemand sagen wieso? mein Code:



    mfg sheepy

  • Mach mal aus dem

    PHP
    1. <?php $_REQUEST['PHP SELF']?>

    bei action ein

    PHP
    1. <?php echo $_REQUEST['PHP SELF'];?>

    Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
    -Dieter Nuhr
    :D

  • huch..ja das hatte ich anfangs auch..aber leider tut sich da auch nichts...der Fehler muss irgendwo anders liegen....



    wenn ich auf submit klicke, wird in meine URL folgendes eingetragen:

    Code
    1. http://127.0.0.1/Projekt/%3Cform%20action=%22%22%20method=%22post%22%3E%20%3Cinput%20type=%22hidden%22%20name=%22akt_seite%22%20value=%221%22%20%3E%20%3Cinput%20type=%22hidden%22%20name=%22akt_seite%22%20value=%222%22%20%3E%20%3Cinput%20type=%22submit%22%3E%20%3C/form%3E%20



    ?¿?

  • Ah.. Jetzt sehe ich das. Du gibst das komplette Formular als href für deinen Link aus. Das kann so nicht klappen.

    Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
    -Dieter Nuhr
    :D

  • Das Superglobale Array $_REQUEST beinhaltet die Werte aus $_POST, $_GET und $_COOKIE und nicht Umgebungsvariablen wie etwa den Scriptname. Ersetze mal das $_REQUEST['PHP_SELF'] durch $_SERVER['PHP_SELF'] - anschließend rufst Du das Formular im Browser auf und schaust als erstes mal im Browser-Quelltext ob jetzt der richtige Scriptname im action steht.

  • ja, dank $_SERVER['PHP_SELF'] steht schonmal der richtige name in der Aktion...


    was würde es denn für vernünftige Methoden für mein Vorhaben geben?


    muss ich meine PHP Funktion in JS umschreiben, oder was würdet ihr mir empfehlen?


    mfg sheepy

  • Du musst die Funktion nicht in JS umschreiben. Du musst sie halt nur an der richtigen Stelle aufrufen. Und das ist nun mal nicht innerhalb des hrefs eines Links. Deine HTML Ausgabe sieht dann nämlich so aus (habbe genau dein Codeschnippsel verwendet, mit der Änderung von $_REQUEST auf $_SERVER):


    Code
    1. <a href=' <form action="" method="post">
    2. <input type="hidden" name="akt_seite" value="" />
    3. <input type="hidden" name="akt_seite" value="1" />
    4. <input type="submit">
    5. </form>
    6. '>zur&uuml;ck</a>


    Und das das nix werden kann, sollte eigentlich jedem mit grundlegenden HTML- Kenntnissen klar werden ;)

    Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
    -Dieter Nuhr
    :D

  • okay, ich habe es jetzt einfach folgendermaßen gemacht:

    PHP
    1. <a href='<?php echo $_SERVER['PHP_SELF']; ?>?seite=<?php echo $akt_seite++; ?>'>weiter</a>


    allerdings hätte ich die varialben lieber versteckt übergeben...nur habe ich leider keine Ahnung wie ich dann meine Funktion aufrufen soll...kann mir da nicht jemand helfen?


    mfg sheepy

  • Indem du aus dem Link ein Formular machst, die Daten per POST übergibst.
    Den Submittbutton kannst du dann per CSS so Stylen, daß er wie ein Textlink aussieht.

    Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
    -Dieter Nuhr
    :D