lvl: submit

Hi,

also folgendes Problem:

Ich habe in einem Formular 2 submit buttons. 1=SAVE 2=DELETE
<input name="save" type="submit" value="Speichern">
<input name="delete" type="submit" value="Löschen">

Wenn ich nun auf der action="seite.php"

$submit = $_POST['submit'];
echo $submit;

ausführen lasse, sagt er mir, das der index submit nicht definiert ist.
Wie kann ich denn den name (save oder delete) der submits auf der anderen seite.php auslesen? und ihn in if anweisungen verwenden?

  1. echo $begrüßung;

    <input name="save" type="submit" value="Speichern">
    $submit = $_POST['submit'];

    Du musst den Wert verwenden, den du unter name angegeben hast, also in dem Fall 'save'

    echo "$verabschiedung $name";

  2. Hallo lvl,

    du müsst auf $_POST['save'] und $_POST['delete'] zugreifen.
    Da steht dann dein value als Wert drin.

    Schönen Gruß aus München

    die knappschaft

    --
    sh:(  fo:|  ch:?  rl:°  br:$,<,>  n4:&  ie:|  mo:|  va:)  de:]  zu:)  fl:|  ss:|  ls:[,#
  3. Hallo!

    Ich habe in einem Formular 2 submit buttons. 1=SAVE 2=DELETE
    <input name="save" type="submit" value="Speichern">
    <input name="delete" type="submit" value="Löschen">

    Der Button "Löschen" sollte wohjl vom Typ reset sein oder ;)

    Wenn ich nun auf der action="seite.php"

    $submit = $_POST['submit'];
    echo $submit;

    ausführen lasse, sagt er mir, das der index submit nicht definiert ist.

    Wenn, dann müsstest du ihn schon so ansprechen:

    $submit = $_POST['save'];
    echo $submit;

    da der Name das Objektes ja "save" und nicht submit ist. Er wird dir aber trotzdem nichts ausgeben, da der submit-Button lediglich zum versenden des Formulars dient, aber keinen Wert per POST übermittetlt..

    Wie kann ich denn den name (save oder delete) der submits auf der anderen seite.php auslesen? und ihn in if anweisungen verwenden?

    Wenn es darum geht sowohl beim löschen als auch beim Abschicken des Formulars eine neue PHP-Seite zu laden ist oben der type submit schon richtig. Nur sind zwei submit-Buttons wohl nicht die feine englische art.. wieso belegst du nicht den submit ganz normal und beim drücken auf reset behilfst du dir mit javascript?

    gruß
    björn

    da

    1. Hallo björn,

      <input name="save" type="submit" value="Speichern">
      <input name="delete" type="submit" value="Löschen">
      Der Button "Löschen" sollte wohjl vom Typ reset sein oder ;)

      Warum? Vielleicht soll auf Server eine Aktion ausgelöst werden, die irgendwas löscht?

      $submit = $_POST['save'];
      echo $submit;

      warum eigentlich immer so kompliziert und nicht einfach
        echo $_POST['save'];

      da der Name das Objektes ja "save" und nicht submit ist. Er wird dir aber trotzdem nichts ausgeben, da der submit-Button lediglich zum versenden des Formulars dient, aber keinen Wert per POST übermittetlt..

      natürlich wird was übermittelt - der Inhalt des value-Attributes. (vorrausgesetzt natürlich, dass das Formular über den Submit-Button abgeschickt wird, und nicht über die Enter-Taste o.ä.)

      Nur sind zwei submit-Buttons wohl nicht die feine englische art..

      Warum nicht? Wenn man verschiedene Aktionen auslösen möchte ist das doch völlig in Ordung ...

      wieso belegst du nicht den submit ganz normal und beim drücken auf reset behilfst du dir mit javascript?

      das ist ja wohl eine saudummer Ratschlag - warum sollte man mit js rumpfuschen wenn es auch ohne geht?

      Grüße aus Nürnberg
      Tobias

      1. echo $begrüßung;

        natürlich wird was übermittelt - der Inhalt des value-Attributes. (vorrausgesetzt natürlich, dass das Formular über den Submit-Button abgeschickt wird, und nicht über die Enter-Taste o.ä.)

        Der Klammersatz gilt nur für den IE. Der FF tut so als ob der erste auffindbare Submit-Button betätigt wurde. (Zu Opera kann ich nichts sagen.)

        echo "$verabschiedung $name";

        1. Hallo dedlfix,

          natürlich wird was übermittelt - der Inhalt des value-Attributes. (vorrausgesetzt natürlich, dass das Formular über den Submit-Button abgeschickt wird, und nicht über die Enter-Taste o.ä.)
          Der Klammersatz gilt nur für den IE. Der FF tut so als ob der erste auffindbare Submit-Button betätigt wurde.

          Ich weiß, aber da es afaik nicht festgelegt ist, dass das name/value-Paar des ersten Submit-Buttons übertragen wird, darf man sich da nicht darauf verlassen.

          (Zu Opera kann ich nichts sagen.)

          Der macht es genauso wie Firefox

          Grüße aus Nürnberg
          Tobias

          1. Hi,

            Ich weiß, aber da es afaik nicht festgelegt ist, dass das name/value-Paar des ersten Submit-Buttons übertragen wird, darf man sich da nicht darauf verlassen.

            Es ist sehr wohl festgelegt.
            Bei mehreren Submit-Buttons ist das name/value-Paar von dem Submit-Button zu übertragen, der benutzt wurde.
            http://www.w3.org/TR/html401/interact/forms.html#h-17.13.2 sagt:
            If a form contains more than one submit button, only the activated submit button is successful.

            Und nur von "successful" controls wird das name/value-Paar übertragen:

            A form data set is a sequence of control-name/current-value pairs constructed from successful controls
            (http://www.w3.org/TR/html401/interact/forms.html#h-17.13.3)

            Bei Benutzung der Return-Taste zum Absenden des Formulars wird keiner der Submit-Buttons benutzt, sofern nicht der Fokus auf einem der Submit-Buttons lag.

            cu,
            Andreas

            --
            Warum nennt sich Andreas hier MudGuard?
            Schreinerei Waechter
            Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    2. Hallo björn,

      da der Name das Objektes ja "save" und nicht submit ist. Er wird dir aber trotzdem nichts ausgeben, da der submit-Button lediglich zum versenden des Formulars dient, aber keinen Wert per POST übermittetlt..

      Das stimmt nicht! Natürlich wird der Wert übermittelt. Wozu sollte value wohl sonst da sein?

      Schönen Gruß aus München

      die knappschaft

      --
      sh:(  fo:|  ch:?  rl:°  br:$,<,>  n4:&  ie:|  mo:|  va:)  de:]  zu:)  fl:|  ss:|  ls:[,#