Rolf B: Wie rufe ich mit URL-Parametern dynamisch Inhalte auf?

Beitrag lesen

problematische Seite

Hallo borisbaer,

Könntest du mir das vielleicht weiterhelfen und für einen AHA-Moment bei mir sorgen?

Erzähl mir nicht, dass Du dieses Detail vorgekaut bekommen musst.

Du liest den Pagename aus dem href Attribut. D.h. in href steht z.B. "savegames" drin.

Aus Sicht des Browsers ist das die relative URL, auf die gewechselt werden muss. D.h. wenn Du - aus Browsersicht - im Ordner "/games/demon-souls/" oder auch "/games/demon-souls/game" bist und "savegames" in die History drückst, setzt der Browser das in "/games/demon-souls/savegames" um. PRIMA.

Der Tab-Inhalt kommt aber von "/games/demon-souls/subpages/savegames". D.h. Du musst dem Ajax-Aufruf etwas mitgeben, woraus der Browser diese URL macht. Das folgt den gleichen Regeln wie das Umsetzen der relativen Link-URL in eine absolute URL.

Allerdings - es ist nur die halbe Miete. Denn dein Server muss daraus dann ja noch "/pages/games/demon-souls/subpages/savegames.php" machen.

Schlechte Lösung - nicht machen: Du pfeifst auf eine RewriteRule und erzeugst diese URL direkt am Client. Das könnte funktionieren (es sei denn, irgendeine RewriteRule schießt quer). ABER - das ist schlechte Architektur. Es ist ganz schlecht, wenn dein JavaScript-Code wissen muss, welche RewriteRules auf dem Server gelten. Das solltest Du nicht tun, sowas geht bei der ersten Änderung kaputt, weil Du nämlich garantiert vergisst, dass Du an 2 Stellen ändern musst. Zumindest würde mir das so gehen.

Sinnvolle Lösung: Du belässt die URL-Spielereien da, wo sie hingehören, auf dem Server. Und baust eine weitere RewriteRule, die URLs zum Pattern /games/([^/]+)/subpages/([^/]+) passend umbaut. Der erste Klammerteil ist der Spielename, der zweite Teil der Pagename - ohne das .php. Und daraus muss dann /pages/games/$1/subpages/$2.php werden. Wenn das klappt, kannst Du /games/demon-souls/subpages/savegames abrufen und bekommst den Inhalt der Subpage

Come on, das kriegst Du hin. Ich schlaf mich derweil aus, letzte Nacht war laaaaang 🥱

Rolf

--
sumpsi - posui - obstruxi
0 75

Wie rufe ich mit URL-Parametern dynamisch Inhalte auf?

borisbaer
  • url
  1. 0
    TS
    • ajax
    • client-server
    • url
    1. 0
      borisbaer
  2. 0
    dedlfix
    1. 0
      borisbaer
      1. 0
        Samuel fiedler
        • javascript
        • php
        • url
        1. 0
          Der Martin
          • php
          • url
        2. 0
          Rolf B
          1. 0
            borisbaer
            1. 0
              Rolf B
              1. 0
                borisbaer
                1. 0
                  Rolf B
                  1. 0
                    borisbaer
                    1. 0
                      Rolf B
                      1. 0
                        borisbaer
                        1. 0
                          tk
                          • php
                          • url
                          1. 0
                            borisbaer
                        2. 0
                          Rolf B
                          1. 0
                            borisbaer
                            1. 0
                              Rolf B
                      2. 1
                        tk
                        • php
                        • url
                        1. 0
                          Rolf B
                          1. 0
                            borisbaer
                            1. 0
                              Der Martin
                              1. 0
                                Rolf B
                                1. 0
                                  borisbaer
                                  1. 0
                                    Rolf B
                                    1. 0
                                      borisbaer
                                      1. 0
                                        Rolf B
                                        1. 0
                                          borisbaer
                                          1. 0
                                            Rolf B
                                            1. 0
                                              borisbaer
                                            2. 0
                                              borisbaer
                                              1. 0
                                                Rolf B
                                                1. 0
                                                  borisbaer
                                                  1. 0
                                                    Rolf B
                                                    1. 0
                                                      borisbaer
                                                      1. 0
                                                        Rolf B
                                                        1. 0
                                                          borisbaer
                                                          1. 0
                                                            borisbaer
                                                            1. 0
                                                              Rolf B
                                                              1. 0
                                                                borisbaer
                                                                1. 0
                                                                  Rolf B
                                                                  1. 0
                                                                    borisbaer
                                                            2. 0
                                                              Rolf B
                                                              1. 0
                                                                borisbaer
                                                                1. 0
                                                                  Rolf B
                                                                  1. 0
                                                                    borisbaer
                                                                    1. 0
                                                                      Rolf B
                                                                      1. 0
                                                                        borisbaer
                                                                        1. 0
                                                                          Rolf B
                                                                          1. 0
                                                                            klawischnigg
                                                                            1. 0
                                                                              Rolf B
                                                                              1. 0
                                                                                klawischnigg
                                                                                1. 0
                                                                                  Rolf B
                                                                          2. 1
                                                                            borisbaer
                                2. 0
                                  Der Martin
                                  1. 0
                                    Rolf B
                                    1. 0
                                      Der Martin
                                      1. 0
                                        Rolf B
                                        1. 0
                                          Der Martin
                                          1. 0
                                            Rolf B
                            2. 0
                              Tabellenkalk
                              1. 0
                                borisbaer
        3. 0
          borisbaer
  3. 0
    Rolf B
    1. 0
      borisbaer
      1. 0
        Rolf B
        1. 0
          borisbaer
          1. 0
            Rolf B
            1. 0
              borisbaer
              1. 1
                Rolf B
                1. 0
                  borisbaer
                  1. 0
                    Rolf B
                    1. 0
                      borisbaer