[JavaScript] /PHP - Fenster öffnen

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

  • [JavaScript] /PHP - Fenster öffnen

    ie: 5.5
    ns: 7.02
    PHP: 4.3.0

    Hallo!
    Ich habe ein Formular, mit dem DB Inhalte dargestellt und auf Button-click auch bearbeitet werden können.
    Wenn sich der Inhalt eines der Felder ändert, soll ein zusätzliches Fenster geöffnet werden, indem man eine Art Kommentar dazu schreiben soll.

    Info:
    Ich weiß, viele (auch ich) halten nicht viel von Popups. Hier geht es allerdings um eine interne Anwendung, deren Benutzer dies gewünscht haben.

    Folgendes Problem:
    Popup soll sich nur öffnen, wenn eine Variable $change == true ist.
    UND: Ich habe keinen Einfluß auf den HTML-Header!!!
    Ich kann also nicht das Formular an die selbe seite abschicken, bei $change == true die Variable $irgendwas = "onLoad='window.open(...." setzen und die dann im Header einbinden.

    Das Formular muss ich abschicken um dann den aktuellen Inhalt des Feldes mit dem 'alten' Inhalt des Feldes vergleichen zu können.
    Dann bin ich also wieder auf meiner startseite, habe eine Variable die den richtigen Wert hat.
    Wie öffne ich ohne in den Header oder den Body-Tag schreiben zu können automatisch ein Fenster????

    Es wäre super, wenn ihr mir Tipps oder Lösungsansätze mitteilen könntet.
    Schon im vorraus vielen Dank!!!!

    Viele Grüße, Lilith
    Bekennender Lokalpatriot:
    www.lippstadt.de =)

  • #2
    selfHTML => javascript => onchange()

    ist dein freund
    Kissolino.com

    Kommentar


    • #3
      Zugriff auf Variablen/ Werte

      Den 'alten' Wert des Feldes kann ich dem neuen Fenster mitgeben. Habe ich dann auch den 'neuen' Inhalt?
      Muss ich den einzeln mitsenden und wenn ja wie?
      Oder kann ich vom Child-Fenster darauf zugreifen und wenn ja wie?

      Vielen Dank!

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

      Kommentar


      • #4
        such mal hier nach "window.opener" bzw. selhtml

        der opener ist das fenster, das das poup geöffnet hat und
        kann auch so angesprochen werden.
        Kissolino.com

        Kommentar


        • #5
          Codeauszug

          Ich habe das mal probiert und leider funktioniert es nicht:
          (Fenster öffnet sich nicht)

          [COLOR=darkblue]echo[/COLOR] [COLOR=teal]"<input type=text name='"[/COLOR] .[COLOR=red]$spalten_bez[5][/COLOR] [COLOR=teal]"' size=15 value='"[/COLOR] .[COLOR=red]$a_pdate[/COLOR].[COLOR=teal]"'onChange=\"window.open('date_note.php','date_note','width=310,height=400')\">"[/COLOR];

          Allerdings erhalte ich auch auch keine Fehlermeldungen. (weder ns noch ie)

          Gruss, Lilith

          Anmerkung:
          Es geht doch. Allerdings muss ich erst "irgendwo" hinklicken.
          Wenn ich den Feldinhalt ändere und dann gleich auf meinen Formbutton drücke, wird das OnChange nicht ausgeführt.
          Kann ich das umgehen?
          Zuletzt geändert von Lilith; 06.06.2003, 09:50.
          Bekennender Lokalpatriot:
          www.lippstadt.de =)

          Kommentar


          • #6
            onchange wirkt afaik erst, wenn javascript "gemerkt" hat, dass sich was geändert hat => wenn du das element verlässt.

            versuchs mal mit onfocus().
            Kissolino.com

            Kommentar


            • #7
              ON...

              OnFocus ist nicht angebracht, weil ich die Änderung abwarten muss.
              Da würde sich onBlur anbieten.
              OnBlur --> teste Inhalt-alt == Inhalt-neu --> false--> öffne fenster

              Allerdings gibt es da ein weiteres Problem:

              Das Feld, dessen Änderung ich überprüfen muss, ist ein Datumsfeld.
              Um die Eingabe zu erleichtern, habe ich neben dem Feld ein kleines Bild, hinter dem sich ein Javascript-Kalender verbirgt.
              Wenn ich die Eingabe manuell tätige (reinklicken, ändern) funktioniert das OnChange/ OnBlur etc. , Benutze ich das JScript, bekommt das Feld nie wirklich einen Fokus und die ganzen Aktionen werden nicht ausgeführt.....

              Gibt es dafür eine Lösung?

              Danke übrigens für deine schnellen Antworten!!!

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

              Kommentar


              • #8
                ohne das script zu kennen, schwierig.

                du kannst versuchen, nach der übergabe der kalenderdaten
                aus dem kalenderscript eine funktion aufzurufen, die dein
                popup öffnet bzw. explizit den fokus auf das feld legt.
                Kissolino.com

                Kommentar


                • #9
                  Bin gerade dabei deinen 2. Vorschlag umzusetzten, aber noch funktioniert es nicht richtig.

                  Das JS schliesst sicht, wenn ein Datum ausgewählt wurde so:
                  this.gWinCal.document.close();
                  Danach habe folgendes eingefügt:
                  erst: this.calform.Planned_Completion.focus();
                  dann: if (this.closed)
                  this.calform.Planned_Completion.focus();

                  Leider funktioniert es nicht richtig.....

                  Das würde allerdings mein Prob lösen, denke ich....
                  Bekennender Lokalpatriot:
                  www.lippstadt.de =)

                  Kommentar


                  • #10
                    entweder setzt du es vor den close-befehl
                    oder
                    machst eine funktion, die die auf onunload() anspringt.

                    btw: müsste es nicht "window.opener.calform.Planned_Completion.focus();" heissen?
                    Kissolino.com

                    Kommentar


                    • #11
                      Vor dem Close Befehl ist es nicht sinnvoll, da erst nach dem Close - Befehl die Veränderung in dem Feld eingefügt wurde.
                      Beim Body-Tag versuche ich es onload, aber es funktioniert nicht.
                      Durch die JAvascript Console im NS kann ich auch die Fehlermeldung lesen:
                      Error: syntax error
                      Source Code:
                      parent.calform.Planned_Completion.focus(); >

                      Dabei ist es egal ob ich parent, document, this, opener, window.opender oder top schreibe......
                      Weiß jemand Rat?

                      Hier der Teilabschnitt aus dem js:
                      this.wwrite("<body " +
                      "link=\"" + this.gLinkColor + "\" " +
                      "vlink=\"" + this.gLinkColor + "\" " +
                      "alink=\"" + this.gLinkColor + "\" " +
                      "text=\"" + this.gTextColor + "\" " +
                      "OnUnload=\"parent.calform.Planned_Completion.focus(); "+ ">");

                      Grüße, Lilith
                      Bekennender Lokalpatriot:
                      www.lippstadt.de =)

                      Kommentar


                      • #12
                        Original geschrieben von Lilith
                        Vor dem Close Befehl ist es nicht sinnvoll, da erst nach dem Close - Befehl die Veränderung in dem Feld eingefügt wurde.
                        das ist unsinn.
                        nach dem schliessen eines fensters existiert der komplete html- und JS-code für den browser nicht mehr, danach wird gar nichts mehr ausgeführt.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Habe eine Funktion check_change (js) geschrieben
                          ich gebe dieser Fkt den Alten WErt mit
                          die js fkt vergleich den Wert mit den aktuellen Inhalt
                          wenn die != sind , dann öffnet er das Fenster!!!

                          Allerdings kommt bei der js fkt nicht (bsp 2/22/03 sondern 0.00012481..... an
                          Hier der Fkt. aufruf:
                          (...) onBlur=\"Javascript:check_change(".$a_pdate.")\" (...)
                          Geht es nicht so?

                          @wahsaga: Hast Recht, werde es nochmal vor dem Close probieren...
                          Bekennender Lokalpatriot:
                          www.lippstadt.de =)

                          Kommentar


                          • #14
                            parent, top => eher bei frames einzusetzen sonst wie:
                            this, document, window.document => das aktive fenster, in dem ich mich befinde
                            opener => das fenster, das ein anderes geöffnet hat

                            also, du öffnest dein calender-script in einem popup
                            rückgabe => opener.document.formularname.elementname.value = wert;
                            fokussieren=>opener.document.formularname.elementname.focus();


                            machs mal so:
                            (...) onBlur=\"Javascript:check_change(\"".$a_pdate."\")\" (...)

                            du dividierst gerade 2:22:3 = 0.00012481
                            Kissolino.com

                            Kommentar


                            • #15
                              Vielen Dank für deine Geduld
                              Bekennender Lokalpatriot:
                              www.lippstadt.de =)

                              Kommentar

                              Lädt...
                              X