Button mit PHP Funktion

  • PHP

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von 3daycliff.

    Button mit PHP Funktion

    Ich versuche über einen HTML Button eine PHP Funktion durchzuführen:

    HTML-Quellcode

    1. <form method="post" enctype="multipart/form-data">
    2. <input type="submit" name="123" value="Löschen1">
    3. </form>

    PHP-Quellcode

    1. <?php
    2. // Bild löschen
    3. if(isset($_REQUEST['123']))
    4. {
    5. $datei_name = $i;
    6. if (@file_exists($datei_name) == true) {
    7. if (@unlink($datei_name) == true) {
    8. echo $i = ("");
    9. } else {
    10. echo 'Die Datei: '.$datei_name.' konnte
    11. nicht gelöscht werden!';
    12. }
    13. } else {
    14. }
    15. }
    16. else
    17. {
    18. }
    19. ?>

    Jedoch funktioniert dies nicht, was mache ich falsch?
    Ich bin jetzt zwar nicht der PHP-Experte, aber ich meine, dass ein Submit-Button nur dieAnweisung gibt, das Formular an den Server zu schicken. Dementsprechend kannst du auch nicht den Wert dieses Buttons (und ich glaube auch sonst von keinem) abfragen. Wenn du die Abfrage weglässt müsste es funktionieren. Ich würde auch mit $_POST die Werte abfragen, da sonst einfach über die Adresszeile deine Eingaben modifiziert werden können.
    Wie HamburgerJungeJr schon gesagt hat, der Submit-Button dient nur zum Senden des Formulars. Auch solltest du, wie er schon gesagt hat, $_POST verwenden.

    Wenn du Werte an den Server schicken möchtest, kannst du dies entweder über normale Steuerelemente tun (z.B. Input-Text) oder aber einen Wert im Formular hinterlegen und zwar mit

    HTML-Quellcode

    1. <input type="hidden" name="NameDeinesWertes" value="Zugehörigerwert" />


    Desweiteren kannst du beim form-Element noch das Attribut "action" angeben, damit kannst du die URL definieren, die aufgerufen werden soll.
    Beide etwas falsch, es fehlt der Form der Action Paramter.

    HTML-Quellcode

    1. <form method="post" enctype="multipart/form-data" action="meinscript.php">
    2. <input type="submit" name="123" value="Löschen1">
    3. </form>

    Ich würde es so lösen:

    PHP-Quellcode

    1. <form method="POST">
    2. <input type="hidden" name="wertname" value="wert" />
    3. <input type="submit" name="aktion01" value="Aktion" />
    4. </form>
    5. <?php
    6. if($_SERVER['REQUEST_METHOD'] == "POST"
    7. && isset($_REQUEST["aktion01"])
    8. && isset($_POST["wertname"])
    9. && $_POST["wertname"] == "wert")
    10. {
    11. //Aktion ausführen
    12. }
    13. ?>

    SᴛᴀʀGᴀᴛᴇ01
    und wie willst du das php Script ausführen. Das script wird ausgeführt beim laden der Seite. Sobald die Seite geladen ist kannst du mit html und php kein script mehr ausführen. Es gibt AJAX aber da kenne ich mich nicht aus.
    Hallo, vielen Dank,

    Ich habe es jetzt so gelöst.

    HTML-Quellcode

    1. <button type="submit" formaction="anlagendaten/pdf_loeschen.inc.php?ida=<?php echo $i;?>">Löschen</button>

    gibt es eine möglichkeit im gleichen zug die Variable $i = "" zu setzen? oder muss ich das auch über das andere Form machen?

    HamburgerJungeJr schrieb:

    Dementsprechend kannst du auch nicht den Wert dieses Buttons (und ich glaube auch sonst von keinem) abfragen.
    Doch, geht. input ist input, der Typ ist egal, der Wert wird übertragen.

    Andy16823 schrieb:

    Beide etwas falsch, es fehlt der Form der Action Paramter.
    Wird der Action-Parameter nicht angegeben, wird die aktuelle URL aufgerufen. Ob das hier so gewollt ist, weiß nur wohl nur der Ersteller^^

    formaction sollte man nur verwenden, wenn man mehrere submit-Buttons hat. Da das bei dir nicht der Fall zu sein scheint, solltest du, wie hier vorgeschlagen, den action-Paramter der Form setzen, wenn du ein anderes Script (als das, was das Formular ausgegeben hat) aufrufen möchtest.