Kai Böhm: Projektinterne Verweise mit PHP?

Hallo,

kann ich über einen Linkaufruf der zum Beispiel auf http://domain/index.php?action=bla geht einen internen Anker ansprechen? Per HTML geht das ja mit http://domain/index.html#anker wenn ich mich recht entsinne, aber über PHP wird die URL dann nicht mehr richtig interpretiert. Oder müsste ich dann ein verstecktes Javascript einbauen um darüber dann zum Anker zu springen? Ich bin für jede Anregung dankbar.

Viele Grüße

Kai

  1. kann ich über einen Linkaufruf der zum Beispiel auf http://domain/index.php?action=bla geht einen internen Anker ansprechen? Per HTML geht das ja mit http://domain/index.html#anker wenn ich mich recht entsinne, aber über PHP wird die URL dann nicht mehr richtig interpretiert.

    Du bringst da was durcheinander: PHP hat im Grunde mit HTML nichts zu tun. PHP ist eine Interpretersprache, die auf dem Server läuft und irgendwas ausgibt. HTML ist eine Seitenbeschreibungssprache, an Hand der ein Browser ein Dokument auf den Bildschirm pinselt.
    Kein Browser bekommt irgendetwas von PHP zu sehen, genau genommen dürfte er nicht einmal wissen, daß hinter einer URL PHP steckt. Alles, was der Browser von Deinem PHP-Skript sieht, ist das, was das Skript ausgibt - und das ist meistens HTML-Text.

    Und nun erkläre doch nochmal, warum Du nicht einfach "seite.php#anker" benutzt bzw. stattdessen unbedingt "seite.php?aktion=bla" haben mußt.

    Gruß,
      soenk.e

    1. Und nun erkläre doch nochmal, warum Du nicht einfach "seite.php#anker" benutzt bzw. stattdessen unbedingt "seite.php?aktion=bla" haben mußt.

      Gruß,
        soenk.e

      Hallo Soenke,

      nee, grundsätzlich ist mir schon klar, dass das nicht zusammengehört, habe das vielleicht etwas blöd ausgedrückt.

      "seite.php#anker" ginge, wenn ich das alles anders aufgebaut hätte, aber ich brauche noch eine Kategorie-Id und die würde ich über die URL mitgeben. "seite.php#anker?cat-id=1" und "seite.php?cat-id=1#anker" hatte ich halt schon probiert und es führte nicht zum gewünschten Erfolg.

      Viele Grüße

      Kai

      1. Hallo Kai,

        "seite.php?cat-id=1#anker" hatte ich halt schon probiert und es führte nicht zum gewünschten Erfolg.

        Diese Syntax ist korrekt - der Fehler muss also woanders liegen.

        Viele Grüße,
        Christian

        1. Hallo Christian,

          ok, ich danke Dir, dann begebe ich mich mal auf die Suche, es scheint also zumindest zu funktionieren. ;-)

          Viele Grüße

          Kai

          1. Hello,

            das hat bei mir auch noch nie funktioniert. Aber irgend jamand meinte dann mal, man müsse es direkt anders herum machen:

            index.php#anker?id=22

            Ich habs aber noch nicht ausprobiert.

            Könntest Du mal sehen, ob es geht?

            Liebe Grüße aus http://www.braunschweig.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            1. Hello,

              http://testserver/~thomas/test/anker/anker.php?id=3#kap02

              So ist es doch richtig und nun hat's bei mir auch funktioniert.

              Allerdings geht in der Adresszeile nach der Ankernutzung die Rückspacetaste immer nicht mehr. Das hatte ich aber schon mal irgendwann geschrieben. Ist IE 5.5.

              Liebe Grüße aus http://www.braunschweig.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            2. Hallo Tom,

              das hat bei mir auch noch nie funktioniert.

              Kann ich absolut nicht nachvollziehen...

              Aber irgend jamand meinte dann mal, man müsse es direkt anders herum machen:

              index.php#anker?id=22

              Das ist vollkommener Unsinn.

              Um jetzt mal alle Zweifel aus der Welt zu räumen:

              http://www.christian-seiler.de/temp/php+anker.php -> 200x <br> und dann ein Anker mit dem Namen a2
              http://www.christian-seiler.de/temp/php+anker.php?a=b -> 200x <br> und dann ein Anker mit dem Namen a1

              http://www.christian-seiler.de/temp/php+anker.php#a1 (kann nicht klappen, #a1 existiert auf der Seite nicht)
              http://www.christian-seiler.de/temp/php+anker.php#a2 (klappt)
              http://www.christian-seiler.de/temp/php+anker.php?a=b#a1 (klappt)
              http://www.christian-seiler.de/temp/php+anker.php?a=b#a2 (kann nicht klappen, #a2 existiert auf der Seite nicht)

              Zum Umdrehen:

              Jeder Möge sich mal folgende URL in die Adresszeile des Browsers reinkopieren:

              http://www.christian-seiler.de/temp/php+anker.php#a1?a=b
              http://www.christian-seiler.de/temp/php+anker.php#a2?a=b

              Beides klappt nicht! In beiden Fällen versucht der Browser nämlich, die Datei http://www.christian-seiler.de/temp/php+anker.php zu laden und dann den Anker mit dem Namen "a1?a=b" bzw. "a2?a=b" zu suchen, den er nicht findet.

              Viele Grüße,
              Christian