woitschi: mehrere actions im <form> möglich?

ich möchte mit dem klick auf einem button
mehrere actions also serverzielseiten
ausführen geht das

<form name="form1" method="post" action="irgendwas.htm">

somit wird bei dem klick auf den abschicken button der wert aus den feldern an irgendwas.htm geschickt jetzt möchste ich aber das mit dem selben klick der gleiche wert auch an irgendwas1.htm geschickt wird

1. frage geht das
2. frage wenn ja wie?

-mfg und danke woitschi-

  1. Hallo woitschi, <-- lustiger Name übrigens :)

    somit wird bei dem klick auf den abschicken button der wert aus den feldern an irgendwas.htm geschickt jetzt möchste ich aber das mit dem selben klick der gleiche wert auch an irgendwas1.htm geschickt wird

    Nein, das geht so nicht. Du kannst höchstens beim Absenden ein
    JavaScript ausführen, dass in 2 Frames (oder was auch immer) 2 neue
    Seiten lädt (wovon ich allerdings abrate).

    Gruß,
    dimde

    1. hi dimde,

      Nein, das geht so nicht.

      doch, natürlich geht das. Du lieferst die Lösung doch selber mit:

      Du kannst höchstens beim Absenden ein JavaScript ausführen

      wovon ich allerdings abrate)

      warum rätst du davon ab?

      Christoph S.

      1. Moin!

        Nein, das geht so nicht.
        doch, natürlich geht das. Du lieferst die Lösung doch selber mit:
        Du kannst höchstens beim Absenden ein JavaScript ausführen

        Dieses Javascript sendet aber das Formular auch nur _einmal_ ab, das zweite Framesfenster hingegen wird nicht aufgrund des abgeschickten Formulars geladen, sondern aufgrund des Javascriptes - und um die Formularfelderinhalte dort mit wirksam werden zu lassen muß man den GET-Request selberbasteln.

        wovon ich allerdings abrate)
        warum rätst du davon ab?

        Javascriptlösungen sind böse[tm]. Insbesondere wenn's um Formularabschicken geht. Das sollte auch ohne Javascript funktionieren.

        Die wirkliche Lösung wäre, dass der Server die Daten intern weiterleitet. Zu einer qualifizierteren Aussage sind aber leider nicht genug Daten und Umstände beschrieben.

        - Sven Rautenberg

        --
        Diese Signatur gilt nur am Freitag.
        1. hi Sven ;-)

          Die wirkliche Lösung wäre, dass der Server die Daten intern weiterleitet. Zu einer qualifizierteren Aussage sind aber leider nicht genug Daten und Umstände beschrieben.

          richtig. Man müßte schauen, was bei "action" wirklich passieren soll, und dann die "Lösung" auf ein serverseitiges Konstrukt verschieben

          Christoph S.

          1. ihr braucht mehr daten na gut...
            also es geht um ein forum... das forum gehört nicht mir liegt also auf einem anderen server zu dem ich keinen zugang habe
            das sind mal die fakten so weit

            dann es geht darum dass man da user bewerten kann ich hab jetzt ein formular geschrieben dass das vereinfacht und dann dem bestimmten user einen wert zuweist

            das problem ist ich möchte gern verschiedenen usern gleichzeitig n(gleichen) wert verpassen
            die user werden per id identifiziert z.b. 14125 is meine...

            jetzt möchte ich den wert z.b. an user mit der id 12312 31223 und 58734 gleichzeitig (mit einem klick) verschicken

            nicht so dass ich die ids eingeben muss sondern so dass die id eh schon fix im dokument drinnen steht

            so sind erstmal mehr infos...
            ehrliche antwort gehts oder gehts nicht?

            -mfg und nochmal danke woitschi-

            1. hi woitschi,

              ihr braucht mehr daten na gut...

              ja, prinzipiell. Allerdings verstehen wir unter "Daten" in diesem Fall dein Script, also den Quellcode deiner Arbeit. Mehr oder weniger wortreiche Erklärungen sind zwar hilfreich zum Verständnis, nutzen aber nicht viel, um dir einen "umsetzbaren" Vorschlag zu liefern.

              so sind erstmal mehr infos...
              ehrliche antwort gehts oder gehts nicht?

              Das läßt sich ohne Quelltext leider nicht genauer sagen. Wahrscheinlich gehts  -  aber es sieht jetzt so aus, als hättest du dich an ein Projekt herangetraut, das deine augenblicklichen Fähigkeiten noch überfordert.

              Christoph S.

              1. quelltext...bittesehr...he n anfänger bin i ah ned grade*fg*
                geht ja nur drum da mehrere actions reinzupappen
                da hab ich einfach rumprobiert... hab das halt nie vorher gebraucht...

                <html>
                <head>
                <title>VoteFormular</title>
                <style type="text/css">
                <!--
                a:link {
                 font-family: Arial, Helvetica, sans-serif;
                 font-weight: bold;
                 color: #CCCCCC;
                 text-decoration: underline;
                }
                a:visited {
                 color: #CCCCCC;
                }
                a:hover {
                 text-decoration: blink;
                }
                -->
                </style>
                </head>

                <body bgcolor="#006699">
                <div align="center">
                  <p><strong><font color="#333333" face="Arial, Helvetica, sans-serif"><a href="http://boards.turtled.com/forum.html?id=111">woitschi's
                    café - bar *klick*</a></font></strong><br>
                    <font color="#333333" face="Arial, Helvetica, sans-serif"><a href="http://boards.turtled.com/forum.html?id=4537"><strong>los_deppos
                    *klick*</strong></a></font></p>
                  <p> </p>
                  <form name="form1" method="post" action="http://boards.turtled.com/rate_user.html?id=326763&posting=584934&rate=bad&ref=/topic.html?id=354278" action="http://boards.turtled.com/rate_user.html?id=347921&posting=584934&rate=bad&ref=/topic.html?id=354278">
                    <strong><font color="#333333" face="Arial, Helvetica, sans-serif">eigene id
                    :
                    <input name="from" type="text" id="ownid">
                    <br>
                    <br>
                    <input name="votebutton" type="submit" id="votebutton" value="voten">
                    </font> </strong>
                  </form>
                  <p> </p>
                </div>
                <div align="center"></div>
                </body>
                </html>

                -------------------------------------------------------------------
                das form. alleine
                -------------------------------------------------------------------

                <form name="form1" method="post" action="http://boards.turtled.com/rate_user.html?id=326763&posting=584934&rate=bad&ref=/topic.html?id=354278" action="http://boards.turtled.com/rate_user.html?id=347921&posting=584934&rate=bad&ref=/topic.html?id=354278">
                    <strong><font color="#333333" face="Arial, Helvetica, sans-serif">eigene id
                    :
                    <input name="from" type="text" id="ownid">
                    <br>
                    <br>
                    <input name="votebutton" type="submit" id="votebutton" value="voten">
                    </font> </strong>
                  </form>
                ---------------------------------------------------------------------

                wie du siehst hab ich da einfach 2x action="" reingepackt weil ich alles andere schon versucht hatte aber es demonstriert was ich damit bezwecken wollte denk ich

                -mfg woitschi-

                1. hi woitsch,

                  quelltext...bittesehr...

                  dankesehr

                  <style type="text/css">

                  da hast du doch schon nen bissel CSS drin, allerdings machst du es nur für Verknüpfungen. Warum nicht gleich für alles andre mit? Der ganze unten folgende Quatsch mit "strong" und "font" kann wegfallen und hier im CSS-Teil formatiert werden, du bekommst erheblich mehr Übersicht.

                  <form name="form1" method="post" action="http://boards.turtled.com/rate_user.html?id=326763&posting=584934&rate=bad&ref=/topic.html?id=354278" action="http://boards.turtled.com/rate_user.html?id=347921&posting=584934&rate=bad&ref=/topic.html?id=354278">

                  ja, und hier hängts also tätsächlich. Wie bereits angemerkt, kannst du nicht zweimal "action" angeben, das funktioniert einfach nicht. Möglicherwiese ist es hinzukriegen, wenn du zwei "form"-Elemente verschachtelst, also
                  <form action="...">
                    <form action="...">
                    </form>
                  </form>

                  aber das ist mehr als zweifelhaft und auch kein sehr guter Stil. Wirklich zu lösen wäre deine Frage erst dann, wenn nun auch der Quelltext von "http://boards.turtled.com/rate_user.html?id=326763&posting=584934&rate=bad&ref=/topic.html?id=354278" zu Verfügung stünde und du in der Lage wärst, eben diesen Quelltext entsprechend zu bearbeiten.
                  Das bist du aber offenkundig nicht. Also muß wohl ein EventHandler wie "onClick" her, dem du dann ganz einfach die zweite "action"-Adresse übergibst. So _könnte_ es dann hinhauen, wäre aber nach wie vor schlechter Stil und wahrscheinlich sogar gar nicht möglich.

                  wie du siehst hab ich da einfach 2x action="" reingepackt weil ich alles andere schon versucht hatte aber es demonstriert was ich damit bezwecken wollte denk ich

                  Das demonstriert vor allem, was du eigentlich _nicht_ zeigen wolltest: daß du nämlich die grundlegenden Möglichkeiten von <form> noch nicht kennst. Nochmal: zwei unterschiedliche "action"-Angaben sind innerhalb eines form-Elements nicht möglich. Das "Normale" wäre, das entsprechende Script auf Serverseite wunschgemäß zu schreiben, aber das kannst du wohl leider nicht. Also bleibt dir nix andres übrig, als zu versuchen, eine zweite Javascript-Lösung einzubauen mit dem Umweg über einen EventHandler  -  oder aber von diesem "Projekt" Abstand zu nehmen, solange du nicht an den Server direkt mit Schreibrechten herankommst.

                  Christoph S.

                  1. Moin!

                    ja, und hier hängts also tätsächlich. Wie bereits angemerkt, kannst du nicht zweimal "action" angeben, das funktioniert einfach nicht. Möglicherwiese ist es hinzukriegen, wenn du zwei "form"-Elemente verschachtelst, also
                    <form action="...">
                      <form action="...">
                      </form>
                    </form>

                    Wahhh!!!!1 Man DARF keine <form>s verschachteln!!!1

                    Abgesehen davon _kann_ es so nicht funktionieren. Ein Request, egal ob per GET oder POST, hat immer _eine_ Antwort, die genau in _ein_ Browserfenster geladen werden kann.

                    Wenn man mehr Daten auf einmal übermitteln will, dann braucht man auf der Serverseite die Möglichkeit, dieses mehr an Daten auch entgegenzunehmen. Wenn auf die Entgegennahme der Daten kein Einfluß genommen werden kann, geht das nicht.

                    Die andere Lösung ist, per GET-Request, ohne Formular, einfach mehrere URLs anzufordern. Wenn dann aber noch variable Elemente hinzukommen, kann man das eigentlich auch vergessen.

                    Aber da es im Beispiel vermutlich ohnehin nur darum geht, drei Benutzer als "schlecht" zu bewerten (und das nicht nur einmal, sondern mehrfach), würde ich nicht mehr allzu große Aktivität drauf verwenden.

                    - Sven Rautenberg

                    --
                    Diese Signatur gilt nur am Freitag.
                    1. hi Sven,

                      Wahhh!!!!1 Man DARF keine <form>s verschachteln!!!1

                      richtig, und ich denke, ich habe (vielleicht nicht deutlich genug) das ebenfalls gesagt. Aber: manche Sachen funktionieren gelegentlich, auch wenn man sie nicht DARF und sie grobe Verstöße gegen alle offiziellen Empfehlungen darstellen. Es gibt _einen_ Browser, der sowas mitmacht, unter der Voraussetzung, daß der "Server", auf den er zugreift, ein IIS ist ...

                      Wenn man mehr Daten auf einmal übermitteln will, dann braucht man auf der Serverseite die Möglichkeit, dieses mehr an Daten auch entgegenzunehmen. Wenn auf die Entgegennahme der Daten kein Einfluß genommen werden kann, geht das nicht.

                      Du sagst das, was ich beschrieben habe, noch einmal mit anderen Worten

                      Die andere Lösung ist, per GET-Request, ohne Formular, einfach mehrere URLs anzufordern.

                      Das müßte man dem guten woitschi wohl etwas genauer verklickern

                      Wenn dann aber noch variable Elemente hinzukommen, kann man das eigentlich auch vergessen.

                      du drückst dich vor Aussagen wie "schlechter Stil", gelle?

                      Aber da es im Beispiel vermutlich ohnehin nur darum geht, drei Benutzer als "schlecht" zu bewerten (und das nicht nur einmal, sondern mehrfach), würde ich nicht mehr allzu große Aktivität drauf verwenden.

                      auf das diskutierte Beispiel bezogen hast du recht. Aber woitschi ist es nach meiner Einschätzung gelungen, einen "Präzendenzfall" zu schaffen. Zu diesem Thema gibts bisher nix im Archiv (oder hab ich nicht korrekt gesucht?). Also sollten wirs so kritisch wie möglich und bis ans Ende durchdiskutieren.

                      Grüße aus Berlin

                      Christoph S.

      2. Hallo Christoph,

        Nein, das geht so nicht.
        doch, natürlich geht das. Du lieferst die Lösung doch selber mit:

        Man kann nicht 2 "action" _Attribute_ definieren (das war seine Frage).

        wovon ich allerdings abrate)
        warum rätst du davon ab?

        Weil man JS abschalten kann (und es viele tun). Das sollte man wissen,
        wenn man sich ein bischen mit der Materie und dem Archiv, etc..
        befasst hat.

        Gruß,
        dimde

        1. moin dimde,

          Man kann nicht 2 "action" _Attribute_ definieren (das war seine Frage).

          Das war möglicherwiese seine Frage, aber deine Antwort ging in Richtung "EventHandler", und nicht in Richtung "action".

          Weil man JS abschalten kann (und es viele tun).

          hihi, man kann noch viel mehr abschalten, zum Beispiel den ganzen PC, was ich gleich mache ...

          Das sollte man wissen, wenn man sich ein bischen mit der Materie und dem Archiv, etc.. befasst hat.

          wie recht du haben kannst ...

          Christoph S.

          1. Hallo,

            hihi, man kann noch viel mehr abschalten, zum Beispiel den ganzen PC, was ich gleich mache ...

            Sorry, Christoph, aber in Anbetracht deiner momentanen Antworten wäre
            das vermutlich nicht allzu verkehrt... :-)

            Tobias

            1. hi;-)

              Sorry, Christoph, aber in Anbetracht deiner momentanen Antworten wäre das vermutlich nicht allzu verkehrt... :-)

              mir ist grade eingefallen, daß ich mir noch vier große ISO's ziehen müßte ...

              aber erntshaft: im Ausgangsposting gehts darum, ob in/von einem "form"-Element mehrere unterschiedliche "Aktionen" ausgelöst werden können. Und das geht nun in der Tat einigermaßen problemlos, der korrekte Weg wäre allerdings, diese "Aktionen" an den von "action" in Gang gesetzten Prozeß zu koppeln  -  will heißen, das CGI-Script (oder was auch immer) dazu anzuhalten, eben zwei Frames zu ändern.
              Der zweite, wesentlich unsicherere und wegen der "Abschaltgefahr" auch weniger ratsame Weg wäre, das über einen EventHandler und Javascript zu machen.

              Einverstanden?

              Christoph S.

          2. 1. der lusstige name is mein nachname nämlich woitsch *fg*
            2. es gibt also ne möglichkeit?
            2. ihr schlagt quasi vor wenn ich es unbedingt machen muss dann soll ich das mit javascript machen

            quasi dass javascript den wert für action="" liefert? und dass dann in ner schleife oder wie? mit javascript in verbindung mit formularen steh ich bissl auf kriegsfuß

            -mfg und nochmal danke woitschi-

            1. hi,

              1. es gibt also ne möglichkeit?

              wenn Du die Einschraenkung JS akzeptierst ist die Loesung simpel:

              document.FORMNAME.action = "was_auch_immer.php";

              Gruesse  Joachim

              1. Moin!

                hi,

                1. es gibt also ne möglichkeit?

                wenn Du die Einschraenkung JS akzeptierst ist die Loesung simpel:

                document.FORMNAME.action = "was_auch_immer.php";

                Das setzt aber die _eine_ Action, die ein Formular haben darf, auf den gegebenen Wert - und keine zweite Action.

                Noch einmal: Ein Formular kann nur zu einem einzigen Ziel abgeschickt werden. Wenn man mehrere Ziele hat, muß man mehrere Formulare oder mehrmals dasselbe Formular abschicken. Das _kann_ man mit Javascript machen - allerdings wird es ohne Frameset bzw. dem Laden der Ergebnisseite in einem neuen Fenster (target="_blank") nicht funktionieren, weil ja sonst das vorhandene Formular und das abschickende Javascript weg sind - ersetzt durch die Ergebnisseite.

                - Sven Rautenberg

                --
                Diese Signatur gilt nur am Freitag.
                1. hi,

                  Das setzt aber die _eine_ Action, die ein Formular haben darf, auf den gegebenen Wert - und keine zweite Action.

                  ups, da hatte ich ihn flash verstanden, dachte es ging um eine Aenderung der action... *asche_streu*.

                  Gruesse  Jo

  2. Hallo Woitschi,

    programmiere ein Skript auf dem Server, welches von Deiner Formularseite angestoßen wird. Dieses Skript kann dann beliebig viele - bis zum Timeout - weitere HTTP-Requests verschicken.

    Gruß

    Eidgenosse