Oliver Baer: Mit Auswahlmenü 2 Frames gleichzeitig ändern

Hallo erstmal,

ich hab da ein Problem. Ich will auf einer Website (soll ein Katalog werden) mit einem Auswahlmenü im oberen Frame 2 Frames ändern. d.h. Wenn ich mit dem Menü eine Auswahl treffe, soll sich rechts davon im Frame eine neue Datei laden und im unteren Frame auch. Also so ähnlich wie die Selfhtml Quickbar, nur ändert sich bei der nur der rechte Frame und nicht auch der untere.

Vielleicht kann mir jemand helfen, oder aber sagen daß das definitiv nicht geht, dann kann ich das meinem Kunden so verklickern...

Danke schonmal

oli

  1. hi oli

    hättest du, wie es in den faq steht, vor deinem posting mal im archiv gesucht hättest du bestimmt eine...auch was, dutzende lösungen für dein problem gefunden.

    alles liebe
    ole
    (8-)>

    ps: das war der wink mit dem gartenzaun ;)

    1. Hi ole,

      naja, asche über mein haupt... ich werds gleich mal tun und wehe ich finde nix ;-)

      cu

      oli

      hi oli

      hättest du, wie es in den faq steht, vor deinem posting mal im archiv gesucht hättest du bestimmt eine...auch was, dutzende lösungen für dein problem gefunden.

      alles liebe
      ole
      (8-)>

      ps: das war der wink mit dem gartenzaun ;)

      1. Servus

        naja, asche über mein haupt... ich werds gleich mal tun und wehe ich finde nix ;-)

        ...und ob du da was finden wirst.
        wenn du die Archivsuche bemühst, wirst du auch so ein, zwei, hundert Antworten auf diese eine Frage finden.

        Beim nächsten Mal duckst du dich bitte schon mal zur Vorsicht, wenn diese eine Frage kommt.

        Ciao Goofy

        1. Naja... Man muss Ihm zugute halten, dass Er die Standard-Noob-Frage wenigstens etwas geändert und das Wort Link durch Auswahlmenü ersetzt hat!

          :o))

          Gruss,
          CS

          1. Hallo,

            du hast nen Kunden und weißt solche relativ einfachen Sachen nicht?

            Wie stellst du dir die seite denn vor?

            Wenn es ein vernünftiger Katalog werden soll, ist sicherlich ein Teil zu dynamisieren, oder, wenn ich an Formulare denke zuzmindest durch serverseitige scriptsprachen zu ergänzen.

            was dann?

            Odium

            1. Hi Odium,

              ich weiss solche einfachen Sachen! Ich befürchte nur ich habe mich vielleicht ein wenig falsch ausgedrückt: mit Auswahlmenü meine ich ein DropDownfeld, mit 2 Frames ändern, das sich der rechte Frame mit einen neuen DropDownfeld und der untere Frame mit dem Content ändert.

              Zum Katalog: Das Teil steht schon soweit, der Content ist drin nur an der Bedienung feile ich noch. Leider geht nix mit dynamisch, das lässt der Webserver einfach nicht zu, wenn er das machen würde, würde ich hier nicht solche fragen stellen sondern den scheiss einfach in ASP oder PHP schreiben und gut ist...

              aber wie gesagt: billiger Webserver, nix dynamisch -> also muss, um wenigsten so ein wenig komfort reinzubekommen das teil mit Javascript aufgepeppt werden. deshalb die vielleicht für euch einfache Frage.

              Aber: wenns denn so einfach ist wieso weiss keiner ne antwort und gibt nur solche kommentare wie: liess mal in archiv blablabla... achne! darauf wäre ich vielleicht auch gekommen und wie gesagt hab ich das dann auch und siehe da: nix mit problemlösung, alles nur sache die ich auch schon wusste und weswegen ich nicht diese Frage gestellt hätte

              so denn

              mfg oli

              Hallo,

              du hast nen Kunden und weißt solche relativ einfachen Sachen nicht?

              Wie stellst du dir die seite denn vor?

              Wenn es ein vernünftiger Katalog werden soll, ist sicherlich ein Teil zu dynamisieren, oder, wenn ich an Formulare denke zuzmindest durch serverseitige scriptsprachen zu ergänzen.

              was dann?

              Odium

              1. Hi Odium,

                ich weiss solche einfachen Sachen! Ich befürchte nur ich habe mich vielleicht ein wenig falsch ausgedrückt: mit Auswahlmenü meine ich ein DropDownfeld, mit 2 Frames ändern, das sich der rechte Frame mit einen neuen DropDownfeld und der untere Frame mit dem Content ändert.

                Hallo oli,

                vielleicht versteh ich Dich ja falsch und ich weiss auch net, wie Du es bisher versucht hast.

                Wieso rufst Du nicht einfach mit OnChange() in Deinem DropDownfeld eine Funktion auf, die in den rechten Frame das neue DropDownfeld lädt und den unteren Frame mit dem Content füllt?

                Gruss Alexa

              2. Hallo,

                dann hast du dich veilleicht wirklich etwas unklar ausgedrückt...
                diese seite kennst du:

                http://selfhtml.teamone.de/javascript/beispiele/zweiframes.htm

                nun kannst du doch dies in deinem select-feld als ereignis einbauen...
                onChange etc....

                um dein select feld (ist das in einem frame, der auch neu geladen wird?) wieder auf den alten wert zu setzen folgendes:

                hänge der wert als paramter an die url an (o.a.)

                lies mit location.search den wert aus (+stringfunktionen zum abtrennen des eigentlichen wertes)

                dein paramter lautet nun beispielsweise vari

                vari = "ja";

                dann in einer for-schleife den wert des selectfeldes wiedererkennen und selecten:

                for (var i=0; i<=document.form_name.select_name.length-1; i++)
                {
                if (document.form_name.select_name.options[i].text==vari)
                {
                document.form_name.select_name.options[i].selected=true;
                break;
                }
                }

                wenn dir das nicht hilft, dann hab ich dein problem immer noch nicht verstanden...

                Odium

              3. Hi!

                Aber: wenns denn so einfach ist wieso weiss keiner ne antwort und gibt nur solche kommentare wie: liess mal in archiv blablabla... achne! darauf wäre ich vielleicht auch gekommen und wie gesagt hab ich das dann auch und siehe da: nix mit problemlösung, alles nur sache die ich auch schon wusste und weswegen ich nicht diese Frage gestellt hätte

                Diese Kommentare waren bestimmt nicht böse gemeint!
                Aber Du musst eins bedenken: es gibt tausende Foren, in denen man Fertiglösungen von den Usern serviert bekommt. In diesem hier nicht. Dieses Forum will anders sein, hier geht es darum - mit Unterstützung der anderen Poster - selbst auf die Lösung zu kommen. Deshalb _Self_Forum. Es wird also eine gewisse Eigenleistung erwartet: wie Du gesehen hast, wird Dir sofort geholfen, wenn Du den anderen Deinen Quellcode zeigst. Die Lösung des Problems war wirklich nur die Kombination von zwei Self-Beispielen, dass es bei Dir nicht funktioniert hat, lag an einem kleinen Fehler im Code.
                Und was das Archiv angeht: auch hier wirst Du meist keine Fertiglösung für Dein spezielles Problem finden. Aber schonmal eine ganze Menge hilfreicher Sachen:
                Hab mal nach Drop-Down-Menü gesucht (http://selfsuche.teamone.de/cgi-bin/such.pl?suchausdruck=Drop-Down-Men�&lang=on&feld=alle&index_4=on&index_5=on&index_6=on&index_7=on&index_8=on&hits=100) und schon das 11. Suchergebnis (http://forum.de.selfhtml.org/archiv/2002/1/2553/#m14421) zeigt, wie man bei der Auswahl im Drop-Down-Menü einen JavaScript-Befehl ausführt (ganz davon abgesehen, dass es in SelfHTML auch steht). Wenn ich das jetzt mit dem Zwei-Frames-Beispiel (http://selfhtml.teamone.de/javascript/beispiele/zweiframes.htm) kombiniere, sollte was vernünftiges rauskommen. Wenn nicht, kann ich ja immer noch im Forum schreiben: "He Jungs, ich hab da folgenden Code aus dem Archiv und folgendes Beispiel auf SelfHTML und hab daraus folgendes gemacht, aber es geht nicht. Wo liegt der Fehler?"
                So sollte der typische Lösungsweg aussehen - das Forum steht immer am Ende aller Probleme. Und wie Du gesehen hast, funktioniert unser SelfPrinzip doch einwandfrei :-)
                Wenn Du also gesagt bekommst, guck mal im Archiv, dann ist das wirklich nur ein gutgemeinter Hinweis.

                VG->Cologne
                Simon

      2. hi,

        ha! wie ichs mir dachte... tausend lösungen! nur nicht zu meinem Problem. Mit Auswahlmenü meine ich das Javascript PullDown Menü, welches z.B. die SELFHTML Quickbar ziert. Weisst Du, mit rechts nem Pfeil und dann draufklicken, dann klappt sich der Kasten runter und man kann fein mit der Maus wählen.

        Bis dahin alles bestens. Funktioniert auch. Wenn ich da jetzt die Funktion einbaue, das sich 2 Frames ändern gehts nicht mehr, dann hab ich halt n dropdownfeld und mehr nicht.

        Weisst Du wie ichs meine?? Wie gesagt, Lösungen gabs viele im Archiv, aber keine die mir gerecht wurde.

        greetings

        oli

        Hi ole,

        naja, asche über mein haupt... ich werds gleich mal tun und wehe ich finde nix ;-)

        cu

        oli

        hi oli

        hättest du, wie es in den faq steht, vor deinem posting mal im archiv gesucht hättest du bestimmt eine...auch was, dutzende lösungen für dein problem gefunden.

        alles liebe
        ole
        (8-)>

        ps: das war der wink mit dem gartenzaun ;)

        1. Hallo Oliver,

          ha! wie ichs mir dachte... tausend lösungen! nur nicht zu meinem Problem. Mit Auswahlmenü meine ich das Javascript PullDown Menü, welches z.B. die SELFHTML Quickbar ziert.

          </selfhtml/javascript/beispiele/verweisliste.htm>

          Wenn ich da jetzt die Funktion einbaue, das sich 2 Frames ändern gehts nicht mehr, dann hab ich halt n dropdownfeld und mehr nicht.

          </selfhtml/javascript/beispiele/zweiframes.htm>

          Den Rest musst du kombinieren. Duerfen wir so viel Selbstaendigkeit verlangen? *g*

          viele Gruesse
            Stefan Muenz

          1. Hi Stefan!

            Ja, soviel Selbständigkeit dürft ihr verlangen! Hab ich auch schon an den Tag gelegt aber: es funzt nicht, nimmer, geht nich!!

            Sonst hätt ich die Frage nicht gestellt. Oder hast Du es schon zum laufen gekriegt??

            greetings

            oli

            Hallo Oliver,

            ha! wie ichs mir dachte... tausend lösungen! nur nicht zu meinem Problem. Mit Auswahlmenü meine ich das Javascript PullDown Menü, welches z.B. die SELFHTML Quickbar ziert.

            </selfhtml/javascript/beispiele/verweisliste.htm>

            Wenn ich da jetzt die Funktion einbaue, das sich 2 Frames ändern gehts nicht mehr, dann hab ich halt n dropdownfeld und mehr nicht.

            </selfhtml/javascript/beispiele/zweiframes.htm>

            Den Rest musst du kombinieren. Duerfen wir so viel Selbstaendigkeit verlangen? *g*

            viele Gruesse
              Stefan Muenz

            1. Hallo Oliver,

              Ja, soviel Selbständigkeit dürft ihr verlangen! Hab ich auch schon an den Tag gelegt aber: es funzt nicht, nimmer, geht nich!!

              dann wäre es sehr schön, wenn Du uns mal das Beispiel geben würdest (entweder als URL, was am einfachsten wäre) oder als Code-Auszug.

              Sonst hätt ich die Frage nicht gestellt. Oder hast Du es schon zum laufen gekriegt??

              Da leider hier Deinen Code kennt, ist das etwas schwer.

              Bis denndann

              Michael N.

              1. Hi Michael,

                Hallo Oliver,

                Ja, soviel Selbständigkeit dürft ihr verlangen! Hab ich auch schon an den Tag gelegt aber: es funzt nicht, nimmer, geht nich!!

                dann wäre es sehr schön, wenn Du uns mal das Beispiel geben würdest (entweder als URL, was am einfachsten wäre) oder als Code-Auszug.

                Hier nun der Code:

                <html>
                <head>
                <title>Untitled Document</title>
                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

                <script type="text/javascript">
                <!--
                function Go(x) {
                 if(x == "nothing") {
                   document.forms[0].reset();
                   document.forms[0].elements[0].blur();
                   return;
                 }
                 else if(x == "end")
                   top.location.href = parent.frames[1].location;
                 else {
                   parent.frames[1].location.href = x;
                   document.forms[0].reset();
                   document.forms[0].elements[0].blur();
                 }

                }

                function ZweiFrames(URI1,F1,URI2,F2) {
                  Frame1=eval("parent."+F1);
                  Frame2=eval("parent."+F2);
                  Frame1.location.href = URI1;
                  Frame2.location.href = URI2;
                }
                function ZweiFramesBack(F1,F2) {
                  Frame1=eval("parent."+F1);
                  Frame2=eval("parent."+F2);
                  Frame1.history.back();
                  if (!window.opera) window.setTimeout("Frame2.history.back()",10);
                }
                function ZweiFramesForward(F1,F2) {
                  Frame1=eval("parent."+F1);
                  Frame2=eval("parent."+F2);
                  Frame1.history.forward();
                  if (!window.opera) window.setTimeout("Frame2.history.forward()",10);
                }
                //-->
                </script>

                </head>

                <body bgcolor="#FFFFFF" text="#000000">

                <form action=""><select size=1 name="Auswahl"
                  onChange="Go(this.form.Auswahl.options[this.form.Auswahl.options.selectedIndex].value)"
                  style="width:250px; background-color:#FFFFE0; font-size:9pt; font-family:Arial,sans-serif;"
                  width="250">
                <option value="nothing">[ bitte ausw‰hlen! ]</option>
                <option value="nothing">------------------------</option>
                <option value="javascript:ZweiFrames('test2_rechts','toprechts','testcontent2','content')">12112121212</option>
                <option value="javascript:ZweiFrames('test3_rechts','toprechts','testcontent3','content')">23423423423</option>
                <option value="nothing">------------------------</option>

                <option value="end">Beenden
                </select></form>
                </body>
                </html>

                leider kann ich die URL nicht geben da Intranet.

                Sonst hätt ich die Frage nicht gestellt. Oder hast Du es schon zum laufen gekriegt??

                Da leider hier Deinen Code kennt, ist das etwas schwer.

                Bis denndann

                Michael N.

                greetings

                oli

                1. Hallo Oliver,

                  Hier nun der Code:

                  <html>
                  <head>
                  <title>Untitled Document</title>
                  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

                  <script type="text/javascript">
                  <!--
                  function Go(x) {
                  if(x == "nothing") {
                     document.forms[0].reset();
                     document.forms[0].elements[0].blur();
                     return;
                  }
                  else if(x == "end")
                     top.location.href = parent.frames[1].location;
                  else {
                     parent.frames[1].location.href = x;

                  Hier denke ich liegt der ganze Hund begraben (zusammen mit den anderen von mir markierten Zeilen).
                  stattdessen könntest Du schreiben:
                        var xarr=x.split("|");
                        ZweiFrames(xarr[0], "toprechts", xarr[1], "content");

                  document.forms[0].reset();
                     document.forms[0].elements[0].blur();
                  }

                  }

                  function ZweiFrames(URI1,F1,URI2,F2) {
                    Frame1=eval("parent."+F1);
                    Frame2=eval("parent."+F2);
                    Frame1.location.href = URI1;
                    Frame2.location.href = URI2;
                  }
                  function ZweiFramesBack(F1,F2) {
                    Frame1=eval("parent."+F1);
                    Frame2=eval("parent."+F2);
                    Frame1.history.back();
                    if (!window.opera) window.setTimeout("Frame2.history.back()",10);
                  }
                  function ZweiFramesForward(F1,F2) {
                    Frame1=eval("parent."+F1);
                    Frame2=eval("parent."+F2);
                    Frame1.history.forward();
                    if (!window.opera) window.setTimeout("Frame2.history.forward()",10);
                  }
                  //-->
                  </script>

                  </head>

                  <body bgcolor="#FFFFFF" text="#000000">

                  <form action=""><select size=1 name="Auswahl"
                    onChange="Go(this.form.Auswahl.options[this.form.Auswahl.options.selectedIndex].value)"
                    style="width:250px; background-color:#FFFFE0; font-size:9pt; font-family:Arial,sans-serif;"
                    width="250">
                  <option value="nothing">[ bitte ausw‰hlen! ]</option>
                  <option value="nothing">------------------------</option>
                  <option value="javascript:ZweiFrames('test2_rechts','toprechts','testcontent2','content')">12112121212</option>

                  [Markierung] hier könntest Du schreiben (mit allen anderen Änderungen zu implementieren): <option value="ZweiFrames('test2_rechts'|'testcontent2'">12112121212</option>

                  <option value="javascript:ZweiFrames('test3_rechts','toprechts','testcontent3','content')">23423423423</option>

                  [Markierung] hier könntest Du schreiben (mit allen anderen Änderungen zu implementieren): <option value="ZweiFrames('test3_rechts'|'testcontent3'">23423423423</option>

                  <option value="nothing">------------------------</option>

                  <option value="end">Beenden
                  </select></form>
                  </body>
                  </html>

                  leider kann ich die URL nicht geben da Intranet.

                  Ist OK, Sample-Code reicht ja.

                  Bis denndann

                  Michael N.

                  1. hi michael,

                    dank dir erstmal. ich hab deine codevorschläge eingebaut, so siehts jetzt aus:

                    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
                    <html>
                    <head>
                    <title>Untitled Document</title>
                    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

                    <script type="text/javascript">
                    <!--
                    function Go(x) {
                     if(x == "nothing") {
                       document.forms[0].reset();
                       document.forms[0].elements[0].blur();
                       return;
                     }
                     else if(x == "end")
                       top.location.href = parent.frames[1].location;
                     else {
                       var xarr=x.split("|");
                       ZweiFrames(xarr[0], "toprechts", xarr[1], "content");

                    document.forms[0].reset();
                       document.forms[0].elements[0].blur();
                     }

                    }

                    function ZweiFrames(URI1,F1,URI2,F2) {
                      Frame1=eval("parent."+F1);
                      Frame2=eval("parent."+F2);
                      Frame1.location.href = URI1;
                      Frame2.location.href = URI2;
                    }
                    //-->
                    </script>

                    </head>

                    <body bgcolor="#FFFFFF" text="#000000">

                    <form action=""><select size=1 name="Auswahl"
                      onChange="Go(this.form.Auswahl.options[this.form.Auswahl.options.selectedIndex].value)"
                      style="width:250px; background-color:#FFFFE0; font-size:9pt; font-family:Arial,sans-serif;"
                      width="250">
                    <option value="nothing">[ bitte ausw‚hlen! ]</option>
                    <option value="nothing">------------------------</option>
                    <option value="javascript:ZweiFrames('test2_rechts'|'testcontent2')">12112121212</option>
                    <option value="javascript:ZweiFrames('test3_rechts'|'testcontent3')">23423423423</option>
                    <option value="nothing">------------------------</option>

                    <option value="end">Beenden
                    </select></form>
                    </body>
                    </html>

                    ich hoffe ich hab das richtig verstanden und die dinger an die richtige stelle gesetzt. funktionieren tut es leider noch immer nicht...

                    oli

                    1. Hallo Oliver,

                      dank dir erstmal. ich hab deine codevorschläge eingebaut, so siehts jetzt aus:

                      Ich hab mir das gerade mal angeschaut, ich war 'ne  Zeit OFFline, daher antworte ich so spät.

                      Zwei Sachen sind da noch nicht ganz so, wie sie sein sollen. Ich hab die Stellen nochmal geändert.

                      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
                      <html>
                      <head>
                      <title>Untitled Document</title>
                      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

                      <script type="text/javascript">
                      <!--
                      function Go(x) {
                      if(x == "nothing") {
                         document.forms[0].reset();
                         document.forms[0].elements[0].blur();
                         return;
                      }
                      else if(x == "end")
                         top.location.href = parent.frames[1].location;
                      else {
                         var xarr=x.split("|");
                         ZweiFrames(xarr[0], "toprechts", xarr[1], "content");

                      document.forms[0].reset();
                         document.forms[0].elements[0].blur();
                      }

                      }

                      function ZweiFrames(URI1,F1,URI2,F2) {
                        Frame1=eval("parent."+F1);
                        Frame2=eval("parent."+F2);
                        Frame1.location.href = URI1;
                        Frame2.location.href = URI2;
                      }
                      //-->
                      </script>

                      </head>

                      <body bgcolor="#FFFFFF" text="#000000">

                      <form action=""><select size=1 name="Auswahl"
                        onChange="Go(this.form.Auswahl.options[this.form.Auswahl.options.selectedIndex].value)"
                        style="width:250px; background-color:#FFFFE0; font-size:9pt; font-family:Arial,sans-serif;"
                        width="250">
                      <option value="nothing">[ bitte ausw‚hlen! ]</option>
                      <option value="nothing">------------------------</option>
                      <option value="javascript:ZweiFrames('test2_rechts'|'testcontent2')">12112121212</option>

                      Hier ist die eine Änderung:
                      <option value="test2_rechts|testcontent2">12112121212</option>
                                     A           A            A
                                     |           |            |
                                     |           |            |
                                     +-----------+------------+---> Hier ganz genau schauen

                      <option value="javascript:ZweiFrames('test3_rechts'|'testcontent3')">23423423423</option>

                      Und hier die andere:
                      <option value="test3_rechts|testcontent3">23423423423</option>
                                     A           A            A
                                     |           |            |
                                     |           |            |
                                     +-----------+------------+---> Hier ganz genau schauen

                      <option value="nothing">------------------------</option>

                      <option value="end">Beenden
                      </select></form>
                      </body>
                      </html>

                      ich hoffe ich hab das richtig verstanden und die dinger an die richtige stelle gesetzt. funktionieren tut es leider noch immer nicht...

                      Ich hatte da auch aus Versehen noch einen kleinen Bug eingebaut gehabt   den hab ich aber in der neuen Version jetzt behoben.

                      Bis denndann

                      Michael N.

        2. hi oli

          du willst mir nicht wirklich erzählen das du in der letzten halben stunde 1000 lösungen durchforstet und an deine bedürfnisse angepasst hast, oder? ;)

          ich weiß das die lösung da ist, denn ich habe mir genau diese auch schon von dort besorgt...vor langer langer zeit :).

          alles liebe
          ole
          (8-)>

        3. tja das ist schade  ;-)