Frank: PHP - Anfrage mit Button Click starten

Ich habe dieses Thema gestern schonmal angesprochen und bekam auch einen sehr hilfreichen Link von einem Forenmitglied.

http://www.php-faq.de/q/q-formular-absenden.html

Das Beispiel das dort zu finden ist, ist wirklich sehr einleuchtend, leider konnte ich bei der Umsetzung nicht zum gewünschten Ergebnis kommen.

Hier ein kleines Beispiel bei dem es allerdings zu keiner Ausgabe kommt. Aber warum?

<input type="submit" name="submit" value="OK"/>

<?
if (isset($_REQUEST['submit'])) { print "alles ok"; }
?>

Danke schonmal.

  1. Hi Frank!

    Hier ein kleines Beispiel bei dem es allerdings zu keiner Ausgabe kommt. Aber warum?

    Weil nichts abgesendet wird. Ein input-Element muss immer innerhalb eines Formulars auftauchen. Dort musst du auch angeben, an welche Datei die Daten gesendet werden.

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. echo $begrüßung;

      Ein input-Element muss immer innerhalb eines Formulars auftauchen.

      Diese Aussage stimmt nicht.
      Es muss nur dann unterhalb[*] eines Form-Elements auftauchen, wenn dessen Name ("control name") und dessen aktueller Wert ("current value") als Teil eines "form data set" versendet werden soll. Siehe http://www.w3.org/TR/html401/interact/forms.html#h-17.13.2.
      Ansonsten kann es auch einfach nur so in der Gegend rumstehen[**], und beispielsweise als Newstickeranzeigefläche zu dienen, um nur mal ein Beispiel einer (mir nicht sonderlich gefallenden) Anwendung zu nennen.

      Dort musst du auch angeben, an welche Datei die Daten gesendet werden.

      Die Spezifikation spricht vom "(form) processing agent" und von einem HTTP URI. Ob an irgendeiner Stelle der Verarbeitung Dateien eine Rolle spielen ist irrelevant.

      echo "$verabschiedung $name";

      [*] "Unterhalb" zog ich bewusst "innerhalb" vor, da input/select/textarea/label/button nicht direkt als Kinder eines form-Elements stehen dürfen. Dazwischen muss noch ein geeignetes Block-Element, wie p oder div, stehen.
      [**] Natürlich unter der Beachtung der Verschachtelungsregeln der HTML-Spezifikation.

      1. Hallo, dedlfix!

        [*] "Unterhalb" zog ich bewusst "innerhalb" vor, da input/select/textarea/label/button nicht direkt als Kinder eines form-Elements stehen dürfen. Dazwischen muss noch ein geeignetes Block-Element, wie p oder div, stehen.

        wer sagt das?

        freundl. Grüsse aus Berlin, Raik

        --
        Der IE ist wichtig. Man benötigt ihn, um sich einen Browser zu besorgen.
        Resizeable Textarea 0.1a
        1. echo $begrüßung;

          [*] "Unterhalb" zog ich bewusst "innerhalb" vor, da input/select/textarea/label/button nicht direkt als Kinder eines form-Elements stehen dürfen. Dazwischen muss noch ein geeignetes Block-Element, wie p oder div, stehen.

          wer sagt das?

          Die Spezifikation von HTML 4.01 und XHTML 1.0, jedenfalls in der Strict-Variante. Da ich diese bevorzugt verwende, verallgemeinerte ich hier unzulässigerweise. In den Transitional-Varianten ist es erlaubt Inline-Elemente, zu denen auch die erwähnten "inline.forms" direkt unter <form> zu verwenden.

          echo "$verabschiedung $name";

  2. Hallo Frank,

    Ich habe dieses Thema gestern schonmal angesprochen

    Richtig, in https://forum.selfhtml.org/?t=118219&m=757650 - bleib bitte in deinem ersten Thread.

    Grüße aus Nürnberg
    Tobias