FunktionsAufruf



  • Hi, ich raffs einfach ned:

    print "<form method='post' action='NewEntry()'>";
    print "<input type='submit' value='Neuer Eintrag'>";
    print "</form>";

    was ich will: ich will dass wenn ma auf den button klickt, die funktion NewEntry() aufgerufen werden soll...

    mit php.



  • so funktioniert das nicht. PHP und HTML sind 2 verschiedene Sachen, du kannst mit HTML Code nicht dazu bringen, dass eine PHP Funktion ausgeführt wird. Was ich damit meine, sowas wie <form method='post' action='NewEntry()'> ist komplett falsch.

    Das <form> TAG braucht in action eine Datei, die aufgerufen wird, diese Datei kann anhand der $_POST, $_GET Variablen herausfinden, wie sie aufgerufen wurde und dementsprechen reagieren.

    Also hier ein Beispiel

    /* base.php */
    echo "Funktion 1 Aufruf<p>";
    echo "<form method=\"post\" action=\"acid.php\">\n";
    echo "<input type=\"submit\" name=\"fun1\" value=\"Funktion1\">";
    echo "</form>\n<p>\n";
    echo "Funktion 2 Aufruf<p>";
    echo "<form method=\"post\" action=\"acid.php\">\n";
    echo "<input type=\"submit\" name=\"fun2\" value=\"Funktion2\">";
    echo "</form>\n";
    

    So, wenn diese Datei vom PHP geparst wird, dann bekommst du 2 Knöpfe (Funktion1 und Funktion2) und je nach Knopf, der geklickt wird, wird eine bestimmte Funktion aufgerufen. Die Datei acid.php muss daher erkennen, welcher Knopf betätigt wurde, dafür werde ich die Variable $_POST benutzen.

    /* acid.php */
    
    /* Ok, wenn $_POST['fun1'] gesetzt ist, dann wurde Funktion1 geklickt */
    if(isset($_POST['fun1']))
    {
        /* Ok, somit weiß ich, dass Funktion1 geklickt wurde */
        function1(); /* Aufruf von Funktion1 */
    } else if(isset($_POST['fun2']))
    {
        /* Ok, somit weiß ich, dass Funktion2 geklickt wurde */
        function2(); /* Aufruf von Funktion2 */
    } else {
        /* Keiner der Knöpfe wurde geklickt */
        echo "Sie m&uuml;ssen einer der Kn&ouml;pfe von base.php klicken";
    }
    

    Ich hoffe du verstehst was ich gepostet habe.

    print "<form method='post' action='NewEntry()'>"; kann nur Funktionieren, wenn du eine NewEntry() Datei hast.



  • hasd recht, war geistig bisschen umnachtet, als ich aus html ne php funktion aufrufen wollte.
    jetzt klappts, danke!


Anmelden zum Antworten