kostenloser Webspace werbefrei: lima-city


Link wird falsch gesetzt Dropdownmenü 2 Ebene

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    puhdys

    Kostenloser Webspace von puhdys

    puhdys hat kostenlosen Webspace.

    Hallo und guten Tag zusammen.

    Ich habe eine Problem mit einem Dropdownmenü.

    Von Anfang an erzählt. Ich habe mir für meine Überarbeitung ein Template mit Bootstrap 5 besorgt. Dann habe ich den Header und den Footer jeweils in eine extra Datei ausgelagert und lasse diese dann includen. Funktioniert auch alles super.

    Bei dem Template war ein Dropdownmenü dabei, was sehr passend für mich war da ich einige Links anbieten möchte. Der Übersichtlichkeitshalber bietet sich das super an.

    Ich möchte dann natürlich mit Unterordnern arbeiten da sich so die Webseite am besten pflegen lässt.

    Beim Aufruf der Seite die momentan noch unter einer Subdomain läuft funktioniert alles prima:

    https://markt2.puhdys24.de/

    Wenn ich dann das Menü Die Puhdys anklicke und mir einen Punkt aussuche wird diese Seite geöffnet.

    Sobald ich aber dann, irgendeinen Link auf der Seite klicken möchte wird der Ordner Band in dem die Dateien von dem Menüpunkt Die Puhdys liegen im Link nochmals dazu gesetzt und ich bekomme Seite nicht gefunden.

    Ich habe mittels ../header.php bzw. ../footer.php das Template auf den Seiten im Ordner Band eingebunden was auch funktioniert. Jedoch klappt es nicht mehr sauber aus so einer Seite aus dem Ordner Band wieder raus zu kommen.

    Das passiert jedoch nur wenn die Ziel Datei in einem Unterordner liegt und nicht im root. Wenn ich auf Internes klicke und dann zum Beispiel auf FAQ dann wird normal die FAQ aufgerufen und der nächste Klick auf einen Seitenlink funktioniert.


    Hier ein Bild meines Verzeichnissbaums

    https://markt2.puhdys24.de/lima/verzeichnissbaum.png

    Inhalt des Ordners band

    https://markt2.puhdys24.de/lima/ordner-band.png

    Header.php mit Menüeintrag band/birr.php usw.

    https://markt2.puhdys24.de/lima/header.png

    Hier als Beispiel die birr.php aus dem Ordner band wie ich es included habe was funktioniert.

    https://markt2.puhdys24.de/lima/birr-php.png


    Um es nochmal in gaaaanz kurzer Form zu sagen, ich komme nach dem klicken eines Links in einen Unterordner nicht mehr auf der Seite weiter da der Ordner band noch einmal in den Seitenlink eingefügt wird.

    Ich danke für eure Hilfe. Vielleicht habe ich auch nur ein kleines Brett vor dem Kopf den ich mache mich schon ein paar Tage abends rum damit.

    Grüße Ronny
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. prinz-und-gloeckner

    prinz-und-gloeckner hat kostenlosen Webspace.

    Wenn ich deine Bastelarbeit richtig nachvollzogen habe, könnte dieser Hinweis nützlich sein:

    Verweise in (X)HTML sind so zu setzen, wie bezüglich der (X)HTML-Ausgabe richtig sind, ziemlich egal, wo Dateien liegen, welche dazu per PHP include oder require eingebunden werden.
    Wie so oft im Leben: Entscheidend ist, was hinten rauskommt.

    Somit, wenn du etwas verbindest, was per PHP ausgeführt wird, muß der Verzeichnisbaum auf PHP-Ebene stimmen.
    Für Verknüpfungen in der (X)HTML-Ausgabe muß dies indes aus Sicht des Brausers stimmen, welcher gar nichts davon mitbekommt, wie die Ausgabe hergestellt wurde.
    Somit sind dies vollkommen unterschiedliche Situationen/Programme, für welche die Angaben stimmen müssen - jeweils aus ihrer Sicht.

    Beispielsweise die Verweise in header.php, wenn dies von band/birr.php eingebunden wird, müssen also bei direktem Aufruf des Brausers von band/birr.php auch relativ dazu angegeben werden, allerdings gibt es wohl kein band/band/band.php etc.
    Absolute Angaben könnten allerdings funktionieren, bei einem gemeinsamen Wurzelverzeichnis ist dies dann /; notfalls alternativ eben die komplette URI/IRI angeben, was man ja auch in einer PHP-Variable angeben kann, wenn man flexibel bleiben will.
    Funktioniert also /band/band.php etc. in header.php für alle Verwendungen von header.php?
    Wenn nicht, könnte man natürlich auch vor dem include mit einer Variable angeben, was jeweils der korrekte Pfad ist - es gibt also einige Möglichkeiten, zu einem funktionierenden Ergebnis zu kommen.
  4. Autor dieses Themas

    puhdys

    Kostenloser Webspace von puhdys

    puhdys hat kostenlosen Webspace.

    Danke erstmal für die Antwort.

    band/band/egal welche.php gibt es nicht. Hier ist es ja so als ob er auf noch einen Ordner band zugreifen will. Weil mit einem mal steht ja 2 mal der Ordner band im Link.

    Sobald ich in dem Ordner band bin z.b. durch klicken im Menü auf Die Puhdys kann ich danach keinen Link mehr anklicken ohne das er dann zb. sowas macht :

    https://markt2.puhdys24.de/band/sammlung.php oder auch https://markt2.puhdys24.de/band/faq.php

    Es wird immer der Ordner "band" davor gestellt. Als ob er wenn ich in dem Ordner bin die Links die ja nicht verändert sind in der Navigation nicht mehr kennt.

    Es dürfte ja kein band/ davorgestellt werden wenn ich zb. auf die Startseite klicke.
  5. prinz-und-gloeckner

    prinz-und-gloeckner hat kostenlosen Webspace.

    Gucke dir doch die Verweise in header.php an.
    Zudem guckst du dir den (X)HTML-Ausgabe-Quelltext jeweils an.
    Wenn du header.php in Unterverzeichnissen einbindest, wird es so wohl nicht funktionieren.

    Die Verweise per Element a sind für den Brauser gedacht, der PHP-parser interessiert sich dafür inhaltlich nicht. Umgedreht der Brauser nicht für PHP-Funktionen, welche bereits auf dem Dienstrechner ausgeführt werden.
  6. Autor dieses Themas

    puhdys

    Kostenloser Webspace von puhdys

    puhdys hat kostenlosen Webspace.

    Naja es funktioniert in soweit das ich den Header und Footer angezeigt bekomme.

    Nur irgenwie setzt er dann in den link der als nächstes geklickt wird einfach nochmal Ordner band mit rein. Gibt es ja nicht nochmal.

    Es müsste doch dann eigentlich wieder "neutral" sein.

    Ich weiß auch nicht. mache das eigentlich schon immer so. Oder kann es daran liegen das es ein Bootstrap Template ist?
  7. witze-dschungel

    witze-dschungel hat kostenlosen Webspace.

    puhdys schrieb:
    Nur irgenwie setzt er dann in den link der als nächstes geklickt wird einfach nochmal Ordner band mit rein.

    Ich kann nur wiederholen, was schon geschrieben wurde. Er "setzt nichts rein". Du sagst dem Browser, er soll einen Ordner tiefer, also macht er das.

    Beispiel https://markt2.puhdys24.de/band/band.php.
    <li><a class="dropdown-item" href="band/band.php">Die Band</a></li>

    ...ist falsch. Richtig wäre ein "/" vor "band...":
    <li><a class="dropdown-item" href="/band/band.php">Die Band</a></li>

    Das gleiche mit jedem anderen Link. Du nutzt fälschlicher Weise relative URLs statt absoluten.

    puhdys schrieb:
    mache das eigentlich schon immer so.

    Dann war es schon immer falsch.

    puhdys schrieb:
    Oder kann es daran liegen das es ein Bootstrap Template ist?

    Nein. Das Problem hast du mit jedem anderen Template, auch ohne CSS. Das ist ein falsches Verständnis von HTML.



    Beitrag zuletzt geändert: 12.10.2023 15:31:30 von witze-dschungel
  8. Autor dieses Themas

    puhdys

    Kostenloser Webspace von puhdys

    puhdys hat kostenlosen Webspace.

    Ich danke dir für deine Mühe und Erklärung. :wave:

    Kannst du mir bitte einen Gefallen tun.

    Geh mal auf https://markt2.puhdys24.de

    Klick dann mal im Menü auf "Die Puhdys" und danach einen der ersten beiden links dort.

    Habe bei Die Band ein / davor gesetzt wie empfohlen. Jetzt bekommst du die Seite angezeigt mit Header und Footer wie vorher auch schon sammt meinem kleinen Text.

    Dann klick bitte irgendeinen Link im Menü egal welchen. Aber es funktioniert nicht. Er will wieder falsch aufrufen und es kommt Datei nicht gefunden.

    Er befindet sich ja nach dem Klick auf zb. Die Band im Ordner band. Und macht einfach weiter es wird nochmal davor gesetzt.

    Ich werde noch irre :wall: Aber du sicherlich auch :eek:

    Danke schon mal
  9. prinz-und-gloeckner

    prinz-und-gloeckner hat kostenlosen Webspace.

    Nun hast du im Verzeichnis band wohl keine Datei namens index.php, folglich kann der Verweis auch nicht funktionieren.
    Mußt eben gucken, ob du überall einen / davor setzen mußt (ich habe mir nicht alles angesehen).

    Unerfreulich ist (bei meinen Sicherheitseinstellungen jedenfalls, vielleicht auch allgemein), daß der 'dropdown' nicht funktioniert, da ist lediglich ein Verweis auf #, was inhaltlich nicht sinnvoll ist, beim CSS fehlt vermutlich :hover mit passender Ergänzung zum Einblenden, denn ohne CSS-Interpretation ist das gesamte Menü sichtbar und funktioniert, mit sind die Untermenüs ausgeblendet und damit unzugänglich.
  10. Autor dieses Themas

    puhdys

    Kostenloser Webspace von puhdys

    puhdys hat kostenlosen Webspace.

    Habe ich jetzt gemacht vor jeden Link ein /.

    Ohne Erfolg. Immer wieder wird der Ordner nochmals davor gestellt.

    Ich packe jetzt alles ins root Verzeichnis und gut ist.

    Wird zwar voll werden aber egal. Ist zwar mist was ich nicht wollte, aber geht nicht anders.

    Danke dennoch für eure Mühe.

    Grüße
  11. prinz-und-gloeckner

    prinz-und-gloeckner hat kostenlosen Webspace.

    Nun, für Dateien im Verzeichnis band funktioniert es doch jetzt, bei den anderen Verweisen hast du ja nichts geändert.

    Kannst auch noch recherchieren, wie Brauser aus relativen URI/IRI absolute machen.
    Dann verbessert sich vielleicht dein Verständnis dafür, was warum funktioniert oder eben auch nicht.

    Grob erklärt nehmen sie einfach die aktuelle Adresse, um die der relativen Angaben in diesem Dokument zu ergänzen.
  12. witze-dschungel

    witze-dschungel hat kostenlosen Webspace.

    puhdys schrieb:
    Habe bei Die Band ein / davor gesetzt wie empfohlen. Jetzt bekommst du die Seite angezeigt mit Header und Footer wie vorher auch schon sammt meinem kleinen Text.

    Dann klick bitte irgendeinen Link im Menü egal welchen. Aber es funktioniert nicht.

    Wie prinz-und-gloeckner schon schreibt: Du musst vor jeden Link ein / setzen, nicht nur bei /band. Mit / kommt der Browser wieder an den Anfang.

    Folgende Links musst du noch korrigieren:
    <li class="nav-item"><a class="nav-link" href="index.php">Startseite</a></li>
    <li class="nav-item"><a class="nav-link" href="sammlung.php">Sammlung</a></li>
    <li class="nav-item"><a class="nav-link" href="berichte.php">Berichte</a></li>
    <li><a class="dropdown-item" href="faq.php">FAQ</a></li>
    <li><a class="dropdown-item" href="kontakt.php">Kontakt/Impressum</a></li>
    <li><a class="dropdown-item" href="links.php">Links</a></li>
    <li><a class="dropdown-item" href="portfolio-overview.html">Portfolio Overview</a></li>
    <li><a class="dropdown-item" href="portfolio-item.html">Portfolio Item</a></li>

    prinz-und-gloeckner schrieb:
    Unerfreulich ist (bei meinen Sicherheitseinstellungen jedenfalls, vielleicht auch allgemein), daß der 'dropdown' nicht funktioniert, da ist lediglich ein Verweis auf #

    Dann hast du vermutlich JavaScript deaktiviert. Diese Art von Dropdown ist standard bei Bootstrap.

    Beitrag zuletzt geändert: 12.10.2023 22:55:44 von witze-dschungel
  13. Autor dieses Themas

    puhdys

    Kostenloser Webspace von puhdys

    puhdys hat kostenlosen Webspace.

    Ich möchte mich bei allen beteiligten, für eure Mühe und Zeit sowie Hilfe bedanken.

    Das / hat gefehlt bei den Links. Jetzt funktioniert alles so wie es soll.

    Ich hatte da einen falschen Grundgedanken und ihr habt mich mit eurer Hilfe wieder auf den Weg gebracht.

    Danke dafür.

    Grüße Ronny
  14. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!