[HTML] [JAVASCRIPT] zwei Submit Buttons - einzeln 'anspechbar'?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [HTML] [JAVASCRIPT] zwei Submit Buttons - einzeln 'anspechbar'?

    Hallo,
    ich habe folgende Situation:

    Formular mit Daten die readonly dargestellt werden.
    Bearbeiten-Button = Submit-Button
    formular action ist die gleiche seite wieder, diesmal werden 1 bis x felder editierbar dargestellt.
    Bearbeiten-Button ist ausgeblendet
    Speichern-Button und Abbrechen-Button sind eingeblendet
    Abbrechen = history.back();
    Speichern = Submit-Button
    Funktioniert bis hierhin alles super.

    Jetzt habe ich ein Fenster X, dass sich öffnet, wenn Feld DATUM geändert wurde.
    (onBlur Funktionsaufruf von check_change, wenn keine Veränderung stattgefunden hat->nichts, wenn Veränderung vorhanden->neues Fenster mit Möglichkeit der Notizeingabe)
    Dieses Fenster X hat ebenfalls ein Formular, mit dem eine Notiz Speichern oder abbrechen kann.
    Abbrechen = this.close()
    speichern:
    function save()
    {
    opener.document.calform.submit();
    this.close();
    }
    Die aktuelle Notiz wird (vorher) gespeichert.
    Im Parent-Fenster wird 'speichern' gedrückt.

    PROBLEM:
    Funktioniert NUR, wenn ich NICHT direkt vom DATUM-Feld auf den Speichern-Button drücke, sondern irgendwo anders hin.
    Drücke ich direkt auf Speichern, wird das neue Fenster X geöffnet, Speichern gedrückt und auf FensterX-Speichern wird das andere Formular WIEDER sumnitted, d.h. ich bin wieder im Bearbeiten-Modus .

    Meine Frage:
    Kann ich den beiden submit-Buttons namen, id's etc. zuordnen um sie direkt anzusprechen?
    Beispiel: opener.document.calform.buttonname.submit();

    Oder:
    Kann ich abfragen, ob das Formular gerade gedendet wurde?

    Ich wäre für Hilfe, Ratschläge etc. dankbar.

    Viele Grüße & schon mal: DAAANKE!

    Lilith
    Bekennender Lokalpatriot:
    www.lippstadt.de =)

  • #2
    ich habe mir jetzt nicht alles durchgelesen, glaube aber dennoch eine lösung zu haben...

    mache für beide buttons je einen anderen namen.

    input.html
    Code:
    <form action="input.php" method="post">
    <input type="text" name="feldtext" value="feldinhalt">
    
    <input type="submit" name="sub1" value="senden 1">
    <input type="submit" name="sub2" value="senden 2">
    </form>
    input.php
    PHP-Code:
     if (isset($_POST['sub1'])) echo "button 1 wurde gedrückt";
     if (isset(
    $_POST['sub2'])) echo "button 2 wurde gedrückt"
    hth
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      SUPER!

      DANKE!

      Das sieht genauso aus, wie das, was ich suche!!!

      Vielen Dank & schöne Grüße,

      Lilith
      Bekennender Lokalpatriot:
      www.lippstadt.de =)

      Kommentar


      • #4
        immer wieder gerne war gerade am tippen aber Abraxax is nun mal nen ganz fixer

        Kommentar


        • #5
          Re: SUPER!

          Original geschrieben von Lilith
          Vielen Dank & schöne Grüße
          immer wieder gern und grüße zurück
          Original geschrieben von JSkrok
          [...] aber Abraxax is nun mal nen ganz fixer
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Original geschrieben von JSkrok
            aber Abraxax is nun mal'n fixer
            OffTopic:
            ja, diese drogensüchtigen machen sich echt überall breit ...


            p.s.: ich hoffe, ich habe nicht sinnentstellend gekürzt beim zitieren? *g*
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Original geschrieben von wahsaga
              OffTopic:
              p.s.: ich hoffe, ich habe nicht sinnentstellend gekürzt beim zitieren? *g*
              OffTopic:
              grrrrrr
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                [JavaScript] Falscher Button

                Hallo nochmal,

                der Ausdruck mit
                if (isset($_POST['sub1'])) echo "button 1 wurde gedrückt";
                funktioniert nur auf der 'eigenen' Seite.
                Wie müsste ich diesen Ausdruck modifizieren um ihn von einem anderen Fester aufrufen zu können?

                Fenster öffnet sich nach Aktion im Parentfenster. Dann soll abgefragt werden, ob im Parentfenster der Button gedrückt worden ist oder nicht.
                Leider habe ich selbst nicht herausfinden können, wie das funktioniert.

                Danke schon mal!!!!

                LG, Lilith
                Bekennender Lokalpatriot:
                www.lippstadt.de =)

                Kommentar


                • #9
                  es gibt eignetlich nur zwei dinge, wie du parameter an eine datei übergibst. in der url oder im formular.

                  ein formulat arbeitet i.d.r immer mit post. also nimmst du $_POST , was ich im beispiel auch gemacht habe.

                  hängst du parameter an die script-url dran, so wird es als get übergeben. du verwendest $_GET zum auslesen.

                  frage(n) beantwortet?
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    [JavaScript] neee noch nicht

                    aber danke der Nachfrage *g*

                    Ich öffne auf der Seite X eine Seite Y.
                    Nach einer Aktion auf der Seite Y möchte ich abfragen, ob in der Zwischenzeit der Button B gedrückt worden ist.
                    D.h. der Button B ist beim Öffnen der Seite Y NIE gedrückt --> hilft also nix, wenn ich da eine Var übergebe (egal ob in einer Form oder per URL)

                    Besteht diese Möglichkeit???

                    Gruss, Lilith
                    Bekennender Lokalpatriot:
                    www.lippstadt.de =)

                    Kommentar


                    • #11
                      wenn der button nicht gedrückt ist, kannst du auch ncihts prüfen...

                      beschreibe es doch mal praktischer, damit ich es verstehen kann.
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        Beschreibung

                        Seite X:
                        Eine Seite im Intranet, die Daten aus der Datenbank readonly darstellt .
                        Alle Daten stehen in einem Formular. On Submit (name="bearbeiten") wird das Formular gesendet. action="./X.php" (gleiche Seite)
                        Das hidden field name="bearb" value="1" wird mitgesendet.
                        Per DB Anfrage wird herausgefunden, welche Daten der User editieren darf, diese Felder sind nun nicht mehr readonly geschaltet.
                        Der Bearbeiten Button ist nicht zu sehen, dafür ein Speichern(1) und ein Abbrechen(2) Button.
                        2: history.back();
                        1: submit, action= gleiche Seite/bearb=0/save=save
                        --> Datensatz wird gespeichert, Bearbeitenmodus beendet
                        Das funktioniert auch sehr gut.
                        Nun das eigentliche Problem.
                        Bei Eingabe einer Datumsveränderung soll dem User die Möglichkeit zur Kommentareingabe auf einer neuen Seite gegeben werden. OnBlur in diesem Feld wird die JS Funktion check_change aufgerufen. Diese prüft, ob alter_inhalt== neuer_inhalt ist und öffnet bei ergebnis=false eine neue Seite. Diese beinhaltet eine kleine Form:
                        Ein Eingabefeld, ein abbrechen Button (=this.close() und ein speichern Button. Speichern= 1. Aufrufen der gleichen Seite 2. Speichern der Eingabe 3. submit der Parentform 4.this.close();
                        Punkt 3 war eine Anforderung, die ich leider nicht beeinflussen kann. Das funktioniert auch - leider immer.
                        Denn wenn der User von dem Datumsfeld gleich auf den Speichern button drückt, passiert (logisch!) folgendes:

                        1. Datensatz wird gespeichert, Bearbeitenmodus ist aus
                        2. kleines Fenster öffnet sich, Notiz wird eingeben, speichern gedrückt
                        3. kleines Fenster: parentform.submit() --> setzt Parentfenster wieder in Bearbeitenmodus!!!!

                        Jetzt habe ich zwei Möglichkeiten, um diese Situation zu lösen:
                        1. check, ob parentform.speichern gedrückt wurde --> kein parentform.submit im kleinen Fenster
                        2. Irgendetwas, was mir nicht einfällt

                        So, jetzt ersteinmal vielen Dank dafür, dass du das mal durchdenkst. Vielleicht fällt dir ja eine Lösung ein.

                        Viele Grüße & DANKE, Lilith

                        P.S.: Öffnen vom kleinen Fenster geschieht immer vor dem submit in der Parentform......
                        Bekennender Lokalpatriot:
                        www.lippstadt.de =)

                        Kommentar


                        • #13
                          so. ich habe mir mal den megatext durchgelesen und frage mich, ob es nicht auch einfacher geht.

                          ok. das bearbeiten und speichern an sich funktioniert ja bei dir.

                          nur eben nicht das mit dem kleinen popup.

                          warum öffnest du nicht das fenster bei bedarf einfach und lässt es unabhängig vom hauptfenster was machen? wenn was gespeichert wird in dem kleinen fenster, so wird es normal in die DB geschrieben. das hauptfenster interessiert dich dabei nicht.

                          damit das kleine fenster jetzt nicht geöffnet bleibt, wenn du im hauptfenster auf einen anderen datensatz gehst, musst du es schliessen. geöffnet hast du es mit JS. dieser code wurde jedoch wahrscheinlich von php beim neuladen der seite in den code integriert. der code sieht sehr wahrscheinlich so aus.
                          Code:
                          minifenster = window.open(.....)
                          über minifenster kannst du nun das fenster vom hauptfenster aus ansprechen und auch schliessliesen.
                          Code:
                          minifenster.clode()
                          damit das beim seitenwechseln/reload des hauptfensters passiert, macht du einfach im body-tags des html-dokumentes ein onUnload="minifenster.close();" rein.
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #14
                            *denk*

                            Ausgangsüberlegung von meinem Auftraggeber war, dass man evtl. ein Kommentar zu einer Änderung abspeichert, die man dann vielleicht nicht speichert.
                            Aber ich denke, dass ist zu verkraften. Ja, ich denke, das werde ich so machen......

                            Vielen Dank für deine Hilfe!

                            LG aus Fra/M,
                            Lilith
                            Bekennender Lokalpatriot:
                            www.lippstadt.de =)

                            Kommentar


                            • #15
                              wieso ein kommentar zu einer änderung speichern, wenn keine änderung gemacht wird?

                              das popup geht erst dann auf, wenn die änderung gespeichert wird. NICHT vorher.
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar

                              Lädt...
                              X