Tim: mehrere Submit-Buttons und feststellen welche gedrückt wurde

Hallo,

sorry der Betreff war schwer zu beschreiben...

Also ich habe ein Formular mit mehreren submit-Buttons, diese haben unterschiedliche namen und unterschiedliche values. Wenn das Formular abgeschickt wird reagiere ich per "<form onSubmit='machwas()'" darauf.
Jetzt meine Frage: ist es möglich in der function 'machwas' rauszubekommen, welcher der submit-Buttons gedrückt wurde?

Danke gruß
Tim

  1. Jetzt meine Frage: ist es möglich in der function 'machwas' rauszubekommen, welcher der submit-Buttons gedrückt wurde?

    Nein.

    Struppi.

    1. Jetzt meine Frage: ist es möglich in der function 'machwas' rauszubekommen, welcher der submit-Buttons gedrückt wurde?

      Nein.

      In PHP geht das laut diesem Beitrag:
      http://www.stadtaus.com/tutorials/content_cat_7_id_35.php

      1. Jetzt meine Frage: ist es möglich in der function 'machwas' rauszubekommen, welcher der submit-Buttons gedrückt wurde?

        Nein.

        In PHP geht das laut diesem Beitrag:
        http://www.stadtaus.com/tutorials/content_cat_7_id_35.php

        *Blitzidee*
        Ich glaub man kann einem submit button doch auch einen namen und ein value zuweisen... versuch mal das aus deinem query zu holen.

        Gruss, stephan

        1. Jetzt meine Frage: ist es möglich in der function 'machwas' rauszubekommen, welcher der submit-Buttons gedrückt wurde?

          Nein.

          In PHP geht das laut diesem Beitrag:
          http://www.stadtaus.com/tutorials/content_cat_7_id_35.php

          *Blitzidee*
          Ich glaub man kann einem submit button doch auch einen namen und ein value zuweisen... versuch mal das aus deinem query zu holen.

          Jo, also ich hatte auch diese Idee und hab den Button per 'getElementById' geholt. Es macht aber keinen Unterschied ob dieser oder ein anderer gedrückt wurde, das value bekomm ich immer raus. Ich bräuchte eigentliche eine Methode die die 'Source' des 'submit-events' zurückgibt (also wie bei Java)

          1. Jetzt meine Frage: ist es möglich in der function 'machwas' rauszubekommen, welcher der submit-Buttons gedrückt wurde?

            Nein.

            In PHP geht das laut diesem Beitrag:
            http://www.stadtaus.com/tutorials/content_cat_7_id_35.php

            *Blitzidee*
            Ich glaub man kann einem submit button doch auch einen namen und ein value zuweisen... versuch mal das aus deinem query zu holen.

            Jo, also ich hatte auch diese Idee und hab den Button per 'getElementById' geholt. Es macht aber keinen Unterschied ob dieser oder ein anderer gedrückt wurde, das value bekomm ich immer raus. Ich bräuchte eigentliche eine Methode die die 'Source' des 'submit-events' zurückgibt (also wie bei Java)

            da musst du beim aufruf der javascriptfunktion nur "this" übergeben und kannst dann in der funktion auf this als "object" zugreifen.

            d.h.:

            <SCRIPT LANGUAGE="JavaScript">
            function test(OBJ)
            {
            alert(OBJ.name);
            alert(OBJ.value);
            }
            </SCRIPT>

            <BUTTON onclick="test(this);" NAME=TEST VALUE=123>

            So müsst klappen...

            Hoffe es hilft

            S.Baltzer

            1. da musst du beim aufruf der javascriptfunktion nur "this" übergeben und kannst dann in der funktion auf this als "object" zugreifen.

              hmmm, wie gesagt ich möchte am liebsten nichts am Aufruf ändern, aber wenn's nicht anders geht... Allerdings rufe ich die function ja im <form> auf, also 'onSubmit()' (siehe ersten Post). Wenn ich da this übergebe, dann ist das ja das Formular, kann ich damit vieleicht was machen?

              1. da musst du beim aufruf der javascriptfunktion nur "this" übergeben und kannst dann in der funktion auf this als "object" zugreifen.

                hmmm, wie gesagt ich möchte am liebsten nichts am Aufruf ändern, aber wenn's nicht anders geht... Allerdings rufe ich die function ja im <form> auf, also 'onSubmit()' (siehe ersten Post). Wenn ich da this übergebe, dann ist das ja das Formular, kann ich damit vieleicht was machen?

                Ich verstehe... nur das Problem ist, das beide der Buttons in dieser Form sitzen und du in diesem Moment (onSubmit) meiner Meinung nach nicht feststellen kannst welche der button dieses event ausgelöst hat.

                MfG,
                S. Baltzer

                1. hmmm, das müssen wir Struppi wohl rechtgeben, dann werd ich es anders lösen müssen, trotzdem vielen Dank.

              2. hmmm, wie gesagt ich möchte am liebsten nichts am Aufruf ändern, aber wenn's nicht anders geht... Allerdings rufe ich die function ja im <form> auf, also 'onSubmit()' (siehe ersten Post). Wenn ich da this übergebe, dann ist das ja das Formular, kann ich damit vieleicht was machen?

                Nach wie vor: Nein!

                Struppi.

                1. Nach wie vor: Nein!

                  Ja, ich hab dich ja verstanden. Du bist aber ein sehr unfreundlicher Zeitgenosse. Aber wahrscheinlich bist du im W3C und alles was du nicht unterschrieben hast gibt's auch nicht und einen Workaround schon garnicht, wa?

                  1. Nach wie vor: Nein!

                    Ja, ich hab dich ja verstanden. Du bist aber ein sehr unfreundlicher Zeitgenosse. Aber wahrscheinlich bist du im W3C und alles was du nicht unterschrieben hast gibt's auch nicht und einen Workaround schon garnicht, wa?

                    Wieso bin ich unfreundlich, wenn ich auf deine Frage antworte?

                    Das du hier Fehlerhaften Code als Lösung angeboten bekommst ist auch nicht meine Problem. Es steht dir frei alle Regel zu verletzen, ich wollte lediglich darauf Hinweisen.

                    Und wegen dem Workaround hab ich dir bereits gesagt, das man dir keinen anbieten kann, solange keiner weiß was du überhaupt machen willst.

                    Struppi.

                    1. Nach wie vor: Nein!

                      Ja, ich hab dich ja verstanden. Du bist aber ein sehr unfreundlicher Zeitgenosse. Aber wahrscheinlich bist du im W3C und alles was du nicht unterschrieben hast gibt's auch nicht und einen Workaround schon garnicht, wa?

                      Wieso bin ich unfreundlich, wenn ich auf deine Frage antworte?

                      Naja, ... NEIN ist echt ne super Forumsantwort...

                      Das du hier Fehlerhaften Code als Lösung angeboten bekommst ist auch nicht meine Problem. Es steht dir frei alle Regel zu verletzen, ich wollte lediglich darauf Hinweisen.

                      Nee, is wahr... Aber jeder kann maln paar "" vergessen, sorry...

                      Und wegen dem Workaround hab ich dir bereits gesagt, das man dir keinen anbieten kann, solange keiner weiß was du überhaupt machen willst.

                      Ich weiss was er will... Wir haben das selbe Problem gehabt...

                      Struppi.

                      MfG und nichts für ungut

                      S.Baltzer

                      1. Wieso bin ich unfreundlich, wenn ich auf deine Frage antworte?

                        Naja, ... NEIN ist echt ne super Forumsantwort...

                        Es war die einzige mögliche auf seine Frage.

                        Das du hier Fehlerhaften Code als Lösung angeboten bekommst ist auch nicht meine Problem. Es steht dir frei alle Regel zu verletzen, ich wollte lediglich darauf Hinweisen.

                        Nee, is wahr... Aber jeder kann maln paar "" vergessen, sorry...

                        Wie gesagt mir ist das egal, ich wollte es nur erwähnen, denn hier lesen ja auch andere mit, d.h. deine Antowrten sind öffentlich und landen im Archiv wo sie dann eine Art Allgemeingültigkeit bekommen. Da machen sich Fehler nciht so gut.

                        Und wegen dem Workaround hab ich dir bereits gesagt, das man dir keinen anbieten kann, solange keiner weiß was du überhaupt machen willst.

                        Ich weiss was er will... Wir haben das selbe Problem gehabt...

                        Das was du angeboten hast, ist - sorry - Murks. Da es weder notwendig ist (wie ich schon mehrmals versucht habe anzudeuten, ist es ein leichtes serverseitig unterschiedlichen Submitbuttons auszuwerten) und darüber hinaus das Formular u.U. unbrauchbar macht.

                        Je nach dem was er wirklich will, gibt es einfache Möglichkeiten und weniger einfache, aber bevor ich rumrate, frage ich lieber nach was er das ziel der ganze Sache ist.

                        Struppi.

                      2. hi,

                        Wieso bin ich unfreundlich, wenn ich auf deine Frage antworte?

                        Naja, ... NEIN ist echt ne super Forumsantwort...

                        da siehst du mal, welche qualität manche fragestellungen hier haben.

                        gruß,
                        wahsaga

                        --
                        Rest in peace, Dimebag!
                        #
                        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
            2. <SCRIPT LANGUAGE="JavaScript">

              hier fehlt das type attribut.

              <BUTTON onclick="test(this);" NAME=TEST VALUE=123>

              HTML Attribute müssen in Anführungszeichen ausser Zahlen. Spätestens mit XHTML müssen Attribute und Code kleingeschrieben werden. http://www.w3.org/TR/xhtml1/#h-4.2

              So müsst klappen...

              Es ist nach wie vor nicht nötig, da du den gedrückten Knopf ohne Probleme Serverseitig rausfinden kannst.

              Struppi.

      2. Nein.

        In PHP geht das laut diesem Beitrag:
        http://www.stadtaus.com/tutorials/content_cat_7_id_35.php

        Ja, natürlich geht das in PHP. Aber danach hats du nicht gefragt. Mit JS geht das nicht.

        Was aber nicht heißt das man keinen workaround, der u.U. das gewünschte macht, bauen kann. Aber da niemand weiß was du wünscht, läßt sich das nicht genau sagen.

        Struppi.

  2. Hallo,

    Hallo auch...

    sorry der Betreff war schwer zu beschreiben...

    Also ich habe ein Formular mit mehreren submit-Buttons, diese haben unterschiedliche namen und unterschiedliche values. Wenn das Formular abgeschickt wird reagiere ich per "<form onSubmit='machwas()'" darauf.
    Jetzt meine Frage: ist es möglich in der function 'machwas' rauszubekommen, welcher der submit-Buttons gedrückt wurde?

    Also, wir regeln das mit unsern forms meist so:

    Kein Submit sondern normale buttons verwenden.
    In diesen Buttons eine funktion aufrufen, die ein hidden input field setzt, in dem wir das kommando spezifizieren, das nach klick des buttons ausgeführt wird und form.submit() danach per hand in der funktion aufrufen.

    So etwa:

    <SCRIPT LANGUAGE="JavaScript">

    function do_submit(WHAT_SHALL_I_DO)
    {
      document.form1.command.value = WHAT_SHALL_I_DO;
      document.form1.submit();
    }

    </SCRIPT>

    <FORM NAME=form1>
    <INPUT TYPE=HIDDEN NAME=command>
    <INPUT TYPE=BUTTON CAPTION="Save" onclick="do_submit('save');">
    <INPUT TYPE=BUTTON CAPTION="Save" onclick="do_submit('preview');">
    </form>

    Danke gruß
    Tim

    Bitte... Hoffe es hilft
    Gruss, Stephan

    1. Also, wir regeln das mit unsern forms meist so:

      Kein Submit sondern normale buttons verwenden.
      In diesen Buttons eine funktion aufrufen, die ein hidden input field setzt, in dem wir das kommando spezifizieren, das nach klick des buttons ausgeführt wird und form.submit() danach per hand in der funktion aufrufen.

      Jo, daran hatte ich auch als erstes gedacht, das Projekt umfasst aber mehrere Hundert seiten und auf vielen ist dieses form-konstrukt zu finden, deshalb suche ich eine Lösung die ich in der zentralen function implementieren kann um nicht jede Seite ändern zu müssen

    2. Kein Submit sondern normale buttons verwenden.

      D.h. die Formulare sind ohne JS nicht mehr Funktionsfähig. Keine schöne Lösung.

      So etwa:

      <SCRIPT LANGUAGE="JavaScript">

      function do_submit(WHAT_SHALL_I_DO)
      {
        document.form1.command.value = WHAT_SHALL_I_DO;
        document.form1.submit();
      }

      Was für einen Sinn soll das machen?
      Was spricht gegen:
      <input type="button" name="command" value="save">
      <input type="button" name="command" value="preview">

      Das reicht voll und ganz aus.

      <FORM NAME=form1>
      <INPUT TYPE=HIDDEN NAME=command>
      <INPUT TYPE=BUTTON CAPTION="Save" onclick="do_submit('save');">
      <INPUT TYPE=BUTTON CAPTION="Save" onclick="do_submit('preview');">

      Dein HTML ist stark Verbesserungswürdig.

      Struppi.

      1. Hi,

        Was spricht gegen:
        <input type="button" name="command" value="save">
        <input type="button" name="command" value="preview">

        Daß das wirkungslose Buttons sind?
        Sie haben per Definition in HTML kein Default-Verhalten, und obiger Code fügt auch kein Verhalten hinzu ...

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. Was spricht gegen:
          <input type="button" name="command" value="save">
          <input type="button" name="command" value="preview">

          Daß das wirkungslose Buttons sind?
          Sie haben per Definition in HTML kein Default-Verhalten, und obiger Code fügt auch kein Verhalten hinzu ...

          Argh, ich meinte natürlich:
          <input type="submit" name="command" value="save">
          <input type="submit" name="command" value="preview">

          Struppi.