$_GET nur teilweise löschen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • $_GET nur teilweise löschen

    Bin dabei eine Navigation zu coden, wenn man auf den Link klickt, kommen die Unterpunkte zum Vorschein, wenn man auf den Link klickt, kommt je nach Thematik an die Datei ?news=1&mag=1, wenn man das Menu wieder schließen will, soll einfach meinetwegen &mag=1 aus der Adresszeile weg, habe schon einiges über explode, etc. versucht, aber hat alles nur teilweise geklappt, kann mir vielleicht jemand eine Lösung geben, wenn ja welche?

  • #2
    wie generierst du denn die links?

    Comment


    • #3
      PHP Code:
      $link "?".$_SERVER['QUERY_STRING']; 

      Comment


      • #4
        machst es ja selbst unflexibler, wenn du den querystring 1 zu 1 übernimmst..

        und was stimmte mit str_replace nicht?

        Comment


        • #5
          Ja das klappt schon, aber dann muss ich auf die Möglichkeit ausweichen:
          PHP Code:
          if(strtok($link"n") == "?")
          $link2 str_replace("news=1"""$link);
          else
          $link2 str_replace("&news=1"""$link);
          if(
          strtok($link"m") == "?")
          $link3 str_replace("mag=1"""$link);
          else
          $link3 str_replace("&mag=1"""$link); 
          Gibt es noch eine elegantere Möglichkeit?

          Wie hättest du es denn gelöst, um es nicht so unflexibel zu machen?
          Last edited by ; 30-11-2004, 17:52.

          Comment


          • #6
            ja - die argumente nur bei bedarf in die links setzen und nicht immer den ganzen querystring mitschleppen.

            Comment


            • #7
              Na so mache ich es doch, wenn das Menü offen ist steht ?mag=1, wenn dieses Menu nicht offen ist, steht ebend nur "?", wo schleppe ich den denn immer mit?

              Comment


              • #8
                hasch, kann es sein dass du deine Links nicht so aufgebaut hast:

                ... href="?cat=xyz&subcat=abc"...

                sondern href="<? echo $_SERVER['QUERY_STRING']; ?>"

                oder zumindest so ähnlich? Verstehst du jetzt den unterschied?

                Comment


                • #9
                  und was ist dann $_SERVER['QUERY_STRING'];, wenn nicht alles?
                  diese variable wird direkt beim seitenaufruf gespeichert und kann nur im nachhinein als ein normaler string behandelt werden.

                  warum setzst du die einzelnen argumente ("bla=bla", "foo=foo", etc) nicht einzeln zusammen, je nach dem, wo der besucher sich gerade befindet?

                  Comment


                  • #10
                    Es ist doch so, man kann mehrere Menüs öffnen, damit diese dann auch geöffnet bleiben, muss ich es doch so machen.

                    Comment


                    • #11
                      diese art dynamik kann man auch anders erreichen. versuch doch einfach, alle argumente in einzelnen variablen zu speichern. dann den status ermitteln (was alles offen ist) und demnach die variablen in die urls setzen

                      Comment


                      • #12
                        Hat wer noch eine Idee, wie ich zwischen das $_GET[''] eine Variable bekomme, sodass diese dann dort ausgeführt wird, geht das?

                        Comment


                        • #13
                          Hallo,
                          versuch´s doch mal mit
                          PHP Code:
                          $querystring ""//leere Variable erzeugen
                          foreach ($_GET as $key => $value) { 
                             $
                          $key $value;
                          //wandelt sämtliche $_GET - Variablen in Variablen und deren Wert um
                              
                          if ($key != "foo")  {
                                  
                          $querystring .= "&amp;amp;" $key "=" .$value;
                              }
                          //Wenn  $_GET ungleich eingegebener Wert, füge sie dem querystring hinzu

                          Danach kannst du die variable querystring an deinen Link anfügen.
                          So kannst du bestimmen, welche variablen an den Link angefügt werden sollen und welche nicht.

                          Comment


                          • #14
                            Habe jetzt die Daten im Array gespeichert, möchte jetzt, dass wenn ein Menü offen ist, dass der Link so generiert wird;

                            PHP Code:
                            if($$_element[2] != 1)
                            $link_tausch $link_tausch."&".$element[1]; 
                            Das Array sieht so aus:
                            PHP Code:
                            $array_link = array(
                            "a" =>     array(    "News hinzufügen""news_add.html$link""news"),
                                    array(    
                            "News Plan""news_plan.html$link""news"), 
                            Die foreach Schleife so:
                            PHP Code:
                            $link_tausch "";
                            foreach(
                            $array as $element)
                            {
                            if($
                            $_element[2] != 1)
                            $link_tausch $link_tausch."&".$element[1];

                            Wie kann ich es anstellen, dass ebend immer dann, wenn $element[2] != 1 ist, dass dem Link zugefügt wird, weil so, wie ich es gemacht habe, klappt es nicht.

                            Comment


                            • #15
                              ka was du da rumfummelst.....

                              Jedenfalls habe ich mal ein Javascript unabhängiges Klappmenu realisiert....Dabei verwendete ich die Session zum Speichern des Zustandes des Klappmenu.....$_GET Parameter member=max bzw. member=min haben dann die Session Vars entsprechend überschrieben. Und das Menu dargestellt entweder auf oder zu
                              [color=blue]MfG Payne_of_Death[/color]

                              [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                              [color=red]Merke:[/color]
                              [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                              Murphy`s Importanst LAWS
                              Jede Lösung bringt nur neue Probleme
                              Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                              In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                              Comment

                              Working...
                              X