Blacky: Variable übergeben

Hallo

Wie übergebe ich eine JavaScript Variable von einer Seite an eine andere?
Funktioniert es auch mit JavaScript Array's?

Danke für die Hinweise.

Grüsse Blacky

  1. hehe ! welch ein zufall ! die frage wollte ich grade posten !

    1. HI Stefan !

      das oben gennante beispiel ist ok, aber ich muss für eine CD einen katalog erstellen. ich dacht das dies am besten mit HTML zu verwirklichen ist. jetzt will der kunde den katalog mit bestellmöglichkeit haben, also muss ich ein gutes JS habe, das mit ie4 und ns4 funzt.

      meine idee:

      der kunde klick das produkt an, welches er bestellen will. darauf erscheint eine htmlseite mit formular (stückzahl usw.) wenn das formular ausgefüllt ist, müssen diese daten an eine weitere htmlseite geleitet werden. das alles muss mit JS erledigt werden, da es ein katalog auf cd werden soll kann ich nicht auf cgi zurückgreifen !!!

      das ist mein problem !

      hoffentlich kann mir jemand helfen !

      Fabian

      1. Hallo Fabian

        der kunde klick das produkt an, welches er bestellen will. darauf erscheint eine htmlseite mit formular (stückzahl usw.) wenn das formular ausgefüllt ist, müssen diese daten an eine weitere htmlseite geleitet werden. das alles muss mit JS erledigt werden, da es ein katalog auf cd werden soll kann ich nicht auf cgi zurückgreifen !!!

        Ich hatte ein ähnliches Problem. Mit Hilfe des Formus kam ich auf folgende Lösung:

        Beim Produkt wird ein Verweis gesetzt:
        <a href="anmeldung.htm?Variable1?Variable1?">

        Die Variablen werden dann auf der aufgerufenen Seite ausgewertet:

        function variablen_auslesen()
        {
        var url_1 = window.location.href
        var i=1

        while(url\_1.charAt(i) != "?")  
        

        {
          i++;
          }
        i++;
          
        while(url_1.charAt(i) != "?")
          {
          titel = titel + url_1.charAt(i);
          i++;
          }
        i++;

        while(url\_1.charAt(i) != "?")  
        

        {
          datum = datum + url_1.charAt(i);
          i++;
          }
        i++;
          
        while(url_1.charAt(i) != "?")
          {
          kursnr = kursnr + url_1.charAt(i);
          i++;
          }
           }

        Das Skript ist nicht ideal, man müsst es so umschreiben, dass es auf verschiedene Anzahl von Variablen reagieren könnte. Mit genügte es aber so, und ich war zu faul um es zu ändern :-).

        Das Problem ist aber, dass der IE4 das mit dem Verweis nur in einer Webumgebung ausführt. Und ich weiss nicht, ob Du das mit der CD in Einklang bringen kannst.

        Und tschüss

        Dominique

        1. Hallo,

          Ich hatte ein ähnliches Problem. Mit Hilfe des Formus kam ich auf folgende Lösung:
          Beim Produkt wird ein Verweis gesetzt:
          <a href="anmeldung.htm?Variable1?Variable1?">
          ...
          Das Problem ist aber, dass der IE4 das mit dem Verweis nur in einer Webumgebung ausführt. Und ich weiss nicht, ob Du das mit der CD in Einklang bringen kannst.

          Wenn Du Dich fuer so eine Loesung wie hier oder aehnlich entscheidest (Uebergabe im aufzurufenden URL), dann verwende statt 'search' ('?') 'hash' ('#').
          Das versteht MSIE auch mit protocol "file:", was ja bei so offline-Anwendungen wie CDs benutzt wird.
          Musst halt nur aufpassen, dass die Geschichte nicht mit irgendwelchen Ankern kollidiert.
          Deswegen ist eben search die bessere Variante, zumindest bei protocol "http:", also z.B. im Web, aber bei Dir eben gerade nicht.
          Die Ermittlung der jeweiligen Werte geht uebrigens ein bisschen geschickter als hier in dem Beispielscript, indem man die search- oder eben hash-Eigenschaft direkt benutzt.
          Auf die FAQ von de.comp.lang.javascript hat Stefan schon hingewiesen.
          http://irb-www.informatik.uni-dortmund.de/~sm/aw/js/faq/, speziell die Frage
          "Wie kann ich Daten zwischen Web-Seiten austauschen, die nacheinander geladen werden?" Guck da auch mal die angegebenen Beispiele rein. Da wird es so gemacht.

          Christine

          1. HI !

            den text habe ich mir mal angesehn, ich habe leider keine ahnung wie man ein solches JS erstellt !

            Die grundsätzliche Vorgehensweise zum Datenaustausch >>zwischen Quell- und Ziel-Seite sieht nun so aus:

            Quell-Seite: Anhängen der Daten an der URL der Ziel->>Seite

            kann mir einer sagen wie das geht?

            Ziel-Seite: Abfragen der angehängten Daten
              
              kann mir einer sagen wie das geht?

            Natürlich gibt es auch hier einige Fallstricke:

            ich weiss, das keiner ein komplettes script schreiben wird, aber eine "rohfassung" währe sehr nett !!! wir müssen das angebot für den kunden bis heute mittag fertig haben, bis dahin muss ich also wissen, ob ich so etwas kann oder nicht ! HELP !^

            danke !

            Fabian

            1. HI !

              den text habe ich mir mal angesehn, ich habe leider keine ahnung wie man ein solches JS erstellt !

              Die grundsätzliche Vorgehensweise zum Datenaustausch >>zwischen Quell- und Ziel-Seite sieht nun so aus:

              Quell-Seite: Anhängen der Daten an der URL der Ziel->>Seite

              kann mir einer sagen wie das geht?

              Im JavaScript-Bereich schreibst Du eine Funktion, in der Du die einzelnen Werte aus Deinen Formular-Feldern ausliest in Variablen ausliest. Anschließend validierst Du das ganze inhaltlich und kontrollierst, ob nicht URL-kompatible Zeichen vorhanden sind. Im nächsten Schritt setzt Du Deine URL zusammen. Das sieht dann etwa so aus:

              function NaechsteSeite()
              {
                var newURL            = "file://...";  /*hier trägst Du dann die Adresse der Seite ein */
                var ParameterEins  = document.[FormularName].[FeldName].value;
                var ParameterZwei  = document.[FormularName].[FeldName].value;

              if ( ParameterEins == [UngueltigerWert])
                {
                  [Fehlerbehandlung]
                }
                
                [Konvertieren nicht URL-kompatibler Zeichen]

              newURL = newURL + "?" + ParameterEins;
                newURL = newURL + "?" + ParameterZwei;

              location.replace(newURL); ODER location.href = newURL;
              }

              und dann als Absende-Button im Formular:

              <INPUT TYPE="BUTTON" NAME="HUGO" VALUE="absenden" onClick="NaechsteSeite();return true">

              Das war's für den Sende-Teil. Für den Empfangsteil mußt Du dann nur location.href im JavaScript-Bereich einer Variablen zuweisen, dann mit ArrayVariable = Variable.split("?") das ganze auseinanderschneiden. ArrayVariable[0] enthält dann die URL, ArrayVariable[1] enthält den ersten Parameter, ArrayVariable[2] enthält den zweiten Parameter usw..

              That's it.

              Michael N.
              }

              1. DANKE !

                Das war's für den Sende-Teil. Für den Empfangsteil mußt Du dann nur location.href im JavaScript-Bereich einer Variablen zuweisen, dann mit ArrayVariable = Variable.split("?") das ganze auseinanderschneiden. ArrayVariable[0] enthält dann die URL, ArrayVariable[1] enthält den ersten Parameter, ArrayVariable[2] enthält den zweiten Parameter usw..

                hehe, ich will ja ned nerven aber wie geht das ?

                That's it.

                but that is not very easy for a JS beginner !

                Fabian

                1. DANKE !

                  Das war's für den Sende-Teil. Für den Empfangsteil mußt Du dann nur location.href im JavaScript-Bereich einer Variablen zuweisen, dann mit ArrayVariable = Variable.split("?") das ganze auseinanderschneiden. ArrayVariable[0] enthält dann die URL, ArrayVariable[1] enthält den ersten Parameter, ArrayVariable[2] enthält den zweiten Parameter usw..

                  hehe, ich will ja ned nerven aber wie geht das ?

                  That's it.

                  but that is not very easy for a JS beginner !

                  Fabian

                  Etwa so:

                  im JavaScript-Bereich eine Funktion:

                  function WerteURLAus()
                  {
                    var URLInhalt       = location.href;
                    var ArrayVariable  = URLInhalt.split("?");

                  document.[FormularName].[FeldName].value = ArrayVariable[1];
                    document.[FormularName].[FeldName].value = ArrayVariable[2];
                    usw.
                  }

                  und dann natürlich das BODY-Tag mit dem onLoad-EventHandler versehen:

                  <BODY onLoad="WerteURLAus();return true;">

                  Michael N.

      2. der kunde klick das produkt an, welches er bestellen will. darauf erscheint eine htmlseite mit formular (stückzahl usw.) wenn das formular ausgefüllt ist, müssen diese daten an eine weitere htmlseite geleitet werden. das alles muss mit JS erledigt werden, da es ein katalog auf cd werden soll kann ich nicht auf cgi zurückgreifen !!!

        Hallo Fabian .. warum willst Du die daten weiterleiten. Wie waere es, wenn DU die Daten auf der gleichen Seite mit JS verarbeitest und dann im gleichen Script sie Seite einfach komplett neu schreibst. Aber die Loesung von Dominique ist sicher auch praktikabel.

        Alles Gute, Kirstin Henningsen

      3. Hi Fabian!

        Man könnte zwar z.B. ein Frameset anlegen und die Variablen immer
        im Hauptframe ablegen. Das Problem ist nur, daß dann bei jedem
        Reload (oder sogar Resize?!) die Startwerte in die Variablen geschrieben
        werden (siehe auch ein Thread in der jüngsten Archiv-Datei...).
        Meiner Meinung nach ist die einzige einigermaßen brauchbare
        Methode die Verwendung von Cookies.
        Siehe dazu in Selfhtml das Beispiel mit dem persönlichen Seitenzähler:
        <../../tede.htm>

        Natürlich sind immer noch viele Browser im Umlauf, die von
        Cookies keine Ahnung haben bzw. bei denen Cookies abgeschaltet wurden...
        Um das abzufangen, empfehle
        ich, auf der Startseite einen Kontroll-cookie zu setzen, der
        dann von jeder anderen Seite per JS abgefragt wird.
        Im Falle eines Nichtvorhandenseins muß man dann eben
        wohl oder übel eine 'sorry...' Seite ausspucken.

        Viele Grüße

        Andreas

  2. Hallo Blacky

    Wie übergebe ich eine JavaScript Variable von einer Seite an eine andere?

    Und noch mal einen Link auf die JS-FAQ zur deutschen JavaScript-Newsgroup. Dort ruhig immer mal reingucken bei Fragen:

    http://irb-www.informatik.uni-dortmund.de/~sm/aw/js/faq/datenspeicherung/austausch.html

    viele Gruesse
      Stefan Muenz