$_GET nur teilweise löschen

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

  • $_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?

    Kommentar


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

      Kommentar


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

        und was stimmte mit str_replace nicht?

        Kommentar


        • #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?
          Zuletzt geändert von ; 30.11.2004, 18:52.

          Kommentar


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

            Kommentar


            • #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?

              Kommentar


              • #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?

                Kommentar


                • #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?

                  Kommentar


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

                    Kommentar


                    • #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

                      Kommentar


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

                        Kommentar


                        • #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.

                          Kommentar


                          • #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.

                            Kommentar


                            • #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.

                              Kommentar

                              Lädt...
                              X