KD-one: Parameter von vorheriger Seite mitnehmen?

Hallo,

Ich hab da ein, für mich, kompliziertes Problem:
Ich möchte auf meinen Seiten einen Link anbieten, mit dem von dem JS-Menü auf ein normales Listenmenü umgeschaltet wird. Das ist ja an sich kein Problem, das kann ich lösen, indem ich per GET den nötigen Parameter mitgebe.
Aber jetzt wird's kompliziert.
Es sollen auch die Parameter der bestehenden Seite mitübergeben werden, welche aber nicht an den Link angefügt sind, damit wieder dieselbe Seite, aber mit dem Listenmenü geladen wird.
Müsste irgendwie mit dem Referrer gehen, wenn ich mich nicht täusche, oder kann man irgendwie die Parameter der bestehenden Seite auslesen und an den Link dynamisch anhängen?
Meine PHP-Kenntnisse sind sehr mager, also würde ich mich über ausführliche Erklärungen bei ev. Hilfestellungen freuen.
Bei meinem Provider läuft PHP-Version 4.0.6, sofern das von Bedeutung ist.
Meine Suche bei PHP.net war auch nicht gerad von Erfolg gekrönt, da ich ja nicht wirklich weiss, wonach ich suchen sollte.
Vielleicht hat ja jemand hilfreiche Tips für mich, wie und auf welchem Weg das am besten zu lösen wäre?

Gruß

Kurt

--
"Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher."  (Albert Einstein; dt.-am. Physiker; 1879-1955)
http://elektro-dunzinger.at
http://shop.elektro-dunzinger.at
  1. Moin Herr Elektriker,

    Ich hab da ein, für mich, kompliziertes Problem:

    Ist nicht kompliziert.

    Aber jetzt wird's kompliziert.

    Nein es ist nicht kompliziert.

    Es sollen auch die Parameter der bestehenden Seite mitübergeben werden, welche aber nicht an den Link angefügt sind, damit wieder dieselbe Seite, aber mit dem Listenmenü geladen wird.
    Müsste irgendwie mit dem Referrer gehen, wenn ich mich nicht täusche, oder kann man irgendwie die Parameter der bestehenden Seite auslesen und an den Link dynamisch anhängen?

    Geht mit Refferrrer rate ich Dir ab!
    Weil den Referrer kann man fälschen.
    Obendrein wird da manchmal was abgeschnitten und manchmal auch nicht.

    Meine Suche bei PHP.net war auch nicht gerad von Erfolg gekrönt, da ich ja nicht wirklich weiss, wonach ich suchen sollte.
    Vielleicht hat ja jemand hilfreiche Tips für mich, wie und auf welchem Weg das am besten zu lösen wäre?

    Es gibt da 2 Möglichkeiten:
    1. Du schreibst mnuell an jeden Link ran was Du mitschicken möchtest oder aber:
    2. Du verwendest Sessions,Dann weist Du auch wonach Du suchen mußt :-)

    Sessions sind nicht so kompliziert wie vermutet, deshalb mach Dir man keine Sorgen in einer knappen Stunde ist Dein Problem gelöst.

    Viele Grüße aus Berlin TomIRL

    1. Hallo TomIRL,

      Es sollen auch die Parameter der bestehenden Seite mitübergeben werden, welche aber nicht an den Link angefügt sind, damit wieder dieselbe Seite, aber mit dem Listenmenü geladen wird.
      Müsste irgendwie mit dem Referrer gehen, wenn ich mich nicht täusche, oder kann man irgendwie die Parameter der bestehenden Seite auslesen und an den Link dynamisch anhängen?
      Geht mit Refferrrer rate ich Dir ab!
      Weil den Referrer kann man fälschen.
      Obendrein wird da manchmal was abgeschnitten und manchmal auch nicht.

      Ok, gestorben.

      Meine Suche bei PHP.net war auch nicht gerad von Erfolg gekrönt, da ich ja nicht wirklich weiss, wonach ich suchen sollte.

      Es gibt da 2 Möglichkeiten:

      1. Du schreibst mnuell an jeden Link ran was Du mitschicken möchtest oder aber:

      nicht durchführbar, weil die Seite ein Template darstellt.

      1. Du verwendest Sessions,Dann weist Du auch wonach Du suchen mußt :-)

      Dann müsste ich also beim Betreten der Seite sofort die Session eröffnen?

      Sessions sind nicht so kompliziert wie vermutet, deshalb mach Dir man keine Sorgen in einer knappen Stunde ist Dein Problem gelöst.

      Jau, dein Wort in Gottes Ohr, ich werd mich mal schlau machen.
      Danke dir. :-)

      Gruß

      Kurt

      --
      "Mancher Mensch hat ein grosses Feuer in seiner Seele, und niemand kommt, um sich daran zu waermen."  (Vincent van Gogh; holl. Maler; 1853-1990)
      http://elektro-dunzinger.at
      http://shop.elektro-dunzinger.at
  2. Hallo,

    Hallo

    Wie wäre es sonst mit dieser lösung?

    echo "<a href='neuerLink.php?meinParameter=1&";
    foreach($HTTP_GET_VARS as $key=>$elem)
    {
      echo $key."=".$elem."&";
    }
    echo "'>neuer Link</a>";

    Hiermit wird jeder Parameter im globalen Array $HTTP_GET_VARS wieder an den href angehängt...

    Gruss

    1. Hallo Marc

      echo "<a href='neuerLink.php?meinParameter=1&";
      foreach($HTTP_GET_VARS as $key=>$elem)
      {
        echo $key."=".$elem."&";
      }
      echo "'>neuer Link</a>";

      Hiermit wird jeder Parameter im globalen Array $HTTP_GET_VARS wieder an den href angehängt...

      Und dann mußt Du diese Prozzedere bei j e d e m Link mitgeben, dies hat er als nicht praktikabel bezeichnet.

      Obendrein wird Deine Schreibweise nicht mehr empfohlen.
      Nutze statt $HTTP_GET_VARS,    $_ GET

      Viele Grüße TomIRL

      1. Hallo TomIRL,

        Hallo Marc

        echo "<a href='neuerLink.php?meinParameter=1&";
        foreach($HTTP_GET_VARS as $key=>$elem)
        {
          echo $key."=".$elem."&";
        }
        echo "'>neuer Link</a>";

        Hiermit wird jeder Parameter im globalen Array $HTTP_GET_VARS wieder an den href angehängt...

        Und dann mußt Du diese Prozzedere bei j e d e m Link mitgeben, dies hat er als nicht praktikabel bezeichnet.

        Ich glaube da besteht ein Missverständnis. Ich entnahm deinem Posting, daß der Link_manuell_verändert werden müsste, das bezeichnete ich als nicht praktikabel.
        Wenn das per Script geht, ist das etwas anderes. Ob das eine Alternative darstellt, kann ich im Moment noch nicht sagen, ich bin gerade auf php.net beim Durchlesen  der Seiten zu SESSION und auch der Infos zu foreach.
        Bei anklicken dieses Links wird ja ein eigenes Menü geladen, da kann ich die erforderlichen Parameter einfach per Link mitübergeben. Rekursiv sollte es aber natürlich dann auch funktionieren, das heisst, es wid unter jedem Menü ein Link eingefügt, der von einem zum anderen Menü wechselt.
        Im Prinzip geht es also nur darum, wenn das Menü gewechselt wird, soll die bestehende Seite dazu gleich mitgeladen werden.
        Was mich an der Session-Lösung im Moment stört, ist, daß ich dazu mein gesamtes Sitekonzept über den Haufen werfen sollte.
        Werde ich aber tun, wenn obige Lösung nicht das hält, was sie mir im Moment verspricht.
        Im Moment hakt es einfach auch noch daran, daß die Funktion auch umgekehrt funktionieren sollte, also müsste ich das Array splitten, einen Parameter entfernen oder aber ändern, je nach Ansatz und dann wieder zusammensetzen und übergeben. Ich schau einfach mal, was mit meinen derzeitigen Kenntnissen am leichtesten zu lösen ist.
        Aber eins kann ich auf alle Fälle schon jetzt sagen: Mit einer Stunde ist da nix, eher mit einer Woche.... ;-)

        Obendrein wird Deine Schreibweise nicht mehr empfohlen.
        Nutze statt $HTTP_GET_VARS,    $_ GET

        $_GET funktioniert bei mir noch nicht, da PHP 4.0.6, das geht nach meinen Informationen erst ab Version 4.1

        @Marc: Danke für die Lösung, ich bin dir dankbar für den Ansatz, den du mir geliefert hast und ich sehe ihn als gute Basis, darauf aufzubauen.
        Die Krux bei solchen Fertiglösungen ist ja, daß man dann bei jedem weiteren Problem sofort um Hilfe schreien muss, weil man eigentlich nichts kapiert hat. Deshalb möchte ich erstmal die Funktion verstehen und werde dann erst entscheiden, welcher Weg der bessere für mich ist.
        Wie du ja obigem Text entnehmen kannst, ist das Problem nich ganz so eng einzugrenzen, es hängt da ja auch noch eine weitere Funktionalität dran.

        Gruß

        Kurt

        --
        "Schoene Tage - nicht weinen, dass sie vergangen, sondern laecheln, dass sie gewesen."  (Rabindranath Tagore; ind. Philosoph, Dichter u. Maler; 1861-1941)
        http://elektro-dunzinger.at
        http://shop.elektro-dunzinger.at
    2. Hallo Marc,

      Also mal ausgehend von deinem Vorschlag:
      echo "<a href='index.php?menu=1&";
       foreach($HTTP_GET_VARS as $key=>$elem)
        {
          echo $key."=".$elem."&";
        }
          echo "'>Menü ohne Javascript</a>";

      Umgekehrt müsste ich dann so vorgehen, richtig?

      echo "<a href='index.php?";
       if(isset($HTTP_GET_VARS["menu"]))
        {
          unset($HTTP_GET_VARS["menu"])
        }
       foreach($HTTP_GET_VARS as $key=>$elem)
        {
          echo $key."=".$elem."&";
        }
          echo "'>Menü mit Javascript</a>";

      Dazu aber noch ein paar Fragen:
      Erstens:
      Was stellt "=>" dar? Ich hab PHP.net dazu auf den Kopf gestellt und nichts dazu gefunden.
      Zweitens:
      Beeinflusst das unset() die restliche Seite, solange dieser Link nicht geklickt wurde? Es soll mit diesem Link ja dann ein Menü geladen werden, das den Schlüssel ["menu"] nicht in seinen Links enthält, auf der bestehenden Seite sind aber alle Links mit diesem Schlüssel ausgestattet.
      Wenn obiges Beispiel funktionieren würde, wären alle meine Probleme ohne Verwendung von Sessions gelöst.
      Drittens:
      Ist das maskieren von & innerhalb des Scriptes in dieser Form zulässig? An und Für sich ist es ja nur eine Textausgabe, aber man weiss ja nie...

      Gruß

      Kurt

      --
      "Die Welt hat genug fuer jedermanns Beduerfnisse, aber nicht genug fuer jedermanns Gier."  (Mahatma Gandhi; ind. Politiker; 1869-1948)
      http://elektro-dunzinger.at
      http://shop.elektro-dunzinger.at
      1. echo "'>Menü mit Javascript</a>";

        Dazu aber noch ein paar Fragen:
        Erstens:
        Was stellt "=>" dar? Ich hab PHP.net dazu auf den Kopf gestellt

        foreach(array_expression as $key => $value) Anweisung

        Durchläuft ein Array mit der Ausgabe $key als Schlüssel $value als Wert!

        foreach () mußt Du gucken.

        nset() gibt eine Variable oder ein Array-Element vollständig frei.
        Beeeinflußt natüürlich diese Array Elemnt auf der ganzen Seite.

        TomIRL

        1. Hallo TomIRL,

          echo "'>Menü mit Javascript</a>";

          Dazu aber noch ein paar Fragen:
          Erstens:
          Was stellt "=>" dar? Ich hab PHP.net dazu auf den Kopf gestellt

          foreach(array_expression as $key => $value) Anweisung

          Durchläuft ein Array mit der Ausgabe $key als Schlüssel $value als Wert!

          foreach () mußt Du gucken.

          Ja, danke, habs bereits gefunden.

          nset() gibt eine Variable oder ein Array-Element vollständig frei.
          Beeeinflußt natüürlich diese Array Elemnt auf der ganzen Seite.

          Das ist auch soweit klar. Nach meiner Einschätzung sollte dies aber nur dann Auswirkungen haben, wenn ich auf der Seite mit diesem Schlüssel weiterarbeiten müsste.
          Da dies aber bei mirr im gegenständlichen Fall nicht zutrifft (der Schlüssel wird ja dann mit jedem Link neu übergeben), dürfte das auf die Anzeige keinen Einfluss haben, oder irre ich mich da?
          Könnte es passieren, wenn ich auf der Seite einen Link á la "index.php?menu=1&content=irgendwas"
          anklicke, dieser falsch ausgeführt wird und stattdessen
          "index.php?content=irgendwas"
          aufgerufen wird?
          Oder wird erst auf der aufgerufenen Seite selbst dieser Schlüssel gelöscht?

          Gruß

          Kurt

          --
          "Tadele nicht den Fluss, wenn du ins Wasser faellst."  (ind. Sprichwort)
          http://elektro-dunzinger.at
          http://shop.elektro-dunzinger.at
        2. Hallo TomIRL und Marco,

          Besten Dank, läuft ausgezeichnet! :-)
          Ich denke, für Sessions muss ich noch einiges dazulernen, das werde ich vermutlich erst dann anwenden, wenn ich das wirklich brauche.
          Wenn das so weitergeht, wird die Seite ein Highlight dank eurer Unterstützung. :-)

          Gruß

          Kurt

          --
          "Unzufriedenheit ist der erste Schritt in der Entwicklung von Menschen und Voelkern."  (Oscar Wilde; ir. Dramatiker, Erzaehler u. Lyriker; 1854-1900)
          http://elektro-dunzinger.at
          http://shop.elektro-dunzinger.at
        3. Hallo TomIRL,

          Aufgrund der foreach Schleife wird ja an jedes Schlüssel/Wertpaar ein & angehängt.
          Wie kann ich das bei der Ausgabe des_letzten_ Schlüssel/Wertpaares unterdrücken?
          Die Frage ist eher kosmetischer Natur, funktionieren tut es mit dem verlorenen & auch...

          Gruß

          Kurt

          --
          "Kein Problem wird geloest, wenn wir traege darauf warten, dass Gott allein sich darum kuemmert."  (Martin Luther King; am. Buergerrechtler; 1929-1968)
          http://elektro-dunzinger.at
          http://shop.elektro-dunzinger.at
          1. Hallo TomIRL,
            Ich habe die beiden Scripte nun mal so abgeändert, daß es nun funktioniert, wenn ich auf der Startseite das Menü wechsle.
            Es werden auch die erforderlichen Teile miteingefügt, wenn der Wechsel auf einer der Unterseiten erfolgt, aber da bleibt noch das Problem mit dem abschliessenden"&"
            Wie kann man das aus der Uri entfernen?
            Die Scripte:

            <?php
            echo "<br><br><br><br><a class="wechsel" href="index.php?menu=1";
             if(isset($HTTP_GET_VARS["content"]))
               {
                echo "&";
              foreach($HTTP_GET_VARS as $key=>$elem)
                 {
                  echo $key."=".$elem."&";
                 }
               }
                echo "">Zum Listenmenü</a>";
              ?>

            und

            <?php
            echo "<a class="wechsel" href="index.php";
             if(isset($HTTP_GET_VARS["menu"]))
              {
                unset($HTTP_GET_VARS["menu"]);
              if(isset($HTTP_GET_VARS["content"]))
                {
                 echo "?";
              foreach($HTTP_GET_VARS as $key=>$elem)
                  {
                   echo $key."=".$elem."&";
                  }
                }
              }
                echo "">Zum Ausklappmenü</a>";
              ?>

            Ich habe "content" als Abfrageparameter benutzt, da dieser bei allen Unterseiten immer gesetzt ist.

            Gruß

            Kurt

            --
            "Was man muehelos erreichen kann, ist gewoehnlich nicht der Muehe wert, erreicht zu werden."  (Sprichwort)
            http://elektro-dunzinger.at
            http://shop.elektro-dunzinger.at
            1. Hallo,

              Und für das Archiv die beiden, restlos funktionierenden Scripte:

              <?php
              $ausgabe = "<br><br><br><br><a class="wechsel" href="index.php?menu=1";
               if(isset($HTTP_GET_VARS["content"]))
                 {
                foreach($HTTP_GET_VARS as $key=>$elem)
                   {
                    $ausgabe.="&".$key."=".$elem;
                   }
                 }
                  echo $ausgabe."">Zum Listenmenü</a>";
                ?>

              und

              $ausgabe="<a class="wechsel" href="index.php";
               if(isset($HTTP_GET_VARS["menu"]))
                {
                  unset($HTTP_GET_VARS["menu"]);
                if(isset($HTTP_GET_VARS["content"]))
                  {
                   $ausgabe.= "?";
                  }
                  $trenner="";
                 foreach($HTTP_GET_VARS as $key=>$elem)
                   {
                    $ausgabe.= $trenner.$key."=".$elem;
                    $trenner="&";
                   }
                }
                echo $ausgabe."">Zum Ausklappmenü</a>";
                ?>

              Gruß

              Kurt

              --
              "Wer keine ueblen Gewohnheiten hat, hat wahrscheinlich auch keine Persoenlichkeit."  (William Faulkner; am. Schriftsteller; 1897-1962)
              http://elektro-dunzinger.at
              http://shop.elektro-dunzinger.at
              1. Hallo,

                Das zweite Script war logisch falsch geschachtelt, weil bei Auftreten des Schlüssel/Wertpaares "menu" immer foreach durchlaufen wurde, was jedoch nur nötig ist, wenn man sich auf einer der Unterseiten befindet.

                <?php
                $ausgabe = "<br><br><br><br><a class="wechsel" href="index.php?menu=1";
                if(isset($HTTP_GET_VARS["content"]))
                   {
                  foreach($HTTP_GET_VARS as $key=>$elem)
                     {
                      $ausgabe.="&".$key."=".$elem;
                     }
                   }
                    echo $ausgabe."">Zum Listenmenü</a>";
                  ?>

                und

                <?php
                $ausgabe="<a class="wechsel" href="index.php";
                 if(isset($HTTP_GET_VARS["menu"]))
                  {
                   unset($HTTP_GET_VARS["menu"]);
                  }
                 if(isset($HTTP_GET_VARS["content"]))
                  {
                   $ausgabe.= "?";
                   $trenner="";
                  foreach($HTTP_GET_VARS as $key=>$elem)
                    {
                     $ausgabe.= $trenner.$key."=".$elem;
                     $trenner="&";
                    }
                  }
                  echo $ausgabe."">Zum Ausklappmenü</a>";
                  ?>

                Gruß

                Kurt

                --
                "Durch die Leidenschaften lebt der Mensch, durch die Vernunft existiert er bloss."  (Nicolas Sbastien Chamfort;fr. Schriftsteller; 1741 - 1794)
                http://elektro-dunzinger.at
                http://shop.elektro-dunzinger.at