Alternativen zu Frame/IFrame

  • Hallo! :)

    Ich konnte im Forum kein Thema finden, dass auf meine Frage einging, deshalb entschloss ich mich, einen neuen Thread zu eröffnen.

    Mein Problem ist folgendes:

    Ich bin zur Zeit dabei, eine Website zu erstellen.
    Dabei habe ich bereits alle Unterseiten erstellt, d.h. nur den Inhalt.
    Dann habe ich noch eine Seite, wo sich das Menü befindet und wo ich schon weiß, wo der Inhalt hinterher erscheinen soll.
    Nun möchte ich aber auf Frames bzw. IFrames verzichten, da ich es als sehr nervig empfinde, wenn man zwei Scrollbalken hat. Um dieses Problem zu beheben möchte ich aber nicht, das Layout verkleinern!

    Meine eigentlich Frage ist nun, ob ich das Menü in jede dieser Unterseiten, wo sich bisher nur der Inhalt befunden hat, reinkopieren muss, so wie z.B.
    http://literaturschock.de/

    Das wäre doch später sehr umständlich, wenn ich das Layout und somit auch das Menü ändern möchte, oder?
    Ginge es nicht, dass ich es wie bei CSS mache? Da macht man es ja auch so, dass man die Effekte in eine .css Datei abspeichert und diese dann in jede Unterseite als z.B. <link href="style.css" rel="stylesheet" type="text/css"> einfügt, so dass wenn man die .css Datei verändert, diese Änderung sich auf alle anderen Seiten mitüberträgt.

    Ich hoffe, ich habe mein Problem einigermaßen verständlich dargelegt.
    Ich wäre für jeden Lösungsvorschlag sehr dankbar.

    Liebe Grüße

    Sahra

  • @ T0b3: Ja, das ist mir bekannt, aber das Problem ist, dass manche Seiten bei mir sehr kurz und andere wiederum unglaublich lang sind.
    Ich möchte nicht, dass Letzteres dann immer nur zur Hälfte angezeigt wird. :wink:
    Zwar kann man die Länge auf irgendeinen anderen gigantischen Wert stellen, aber das wäre doch sehr überflüssig, wenn dann Seiten aufgerufen werden, die vielleicht zwei Zeilen beinhalten und man dann noch einen Rest an Seite hat, das leer ist. Also ich persönlich finde sowas nicht schön. Eine Seite sollte immer nur bis zum letzten Wort oder was auch immer gehen, aber nicht leer stehen.

    @ Modula: Meine Seite beschränkt sich leider nur auf HTML. :cry:
    Was PHP angeht, bin ich ein absoluter Anfänger.
    Wäre es möglich, dass du es mir soweit erklärst, dass ich weiß, welchen Code ich wohin einbauen muss und alles andere wichtige?
    Wäre wirklich sehr lieb von dir.

    • Offizieller Beitrag
    Zitat von Modula

    Wenn du PHP hast oder du SSI benutzen kannst könntest du die Navigation einfach includen :)

    (bei PHP: <?php include("datei.htm"); ?>, SSI müsst ich nu nachsehen...)

    Mit SI geht es so

    Code

    Egal ob jetzt PHP oder SSI, der Webserver sollte es unterstützen .
    Iframe geht auf alle Fälle immer

  • Also ich habe es mit PHP versucht, aber was muss ich denn bei URL eingeben? Den Link der Seite, wo sich das Menü befindet, also die "Hauptseite"? Außerdem öffnet er die gewünschte Seite zwar im selben Fenster, aber dann auch ohne Menü, was ich ja nicht wollte.
    Ja, IFrame geht immer, aber darauf möchte ich verzichten, weil ich ja keine zwei Scrollbalken haben möchte.

  • Zitat von Leleth

    @ Modula: Meine Seite beschränkt sich leider nur auf HTML. :cry:
    Was PHP angeht, bin ich ein absoluter Anfänger.
    Wäre es möglich, dass du es mir soweit erklärst, dass ich weiß, welchen Code ich wohin einbauen muss und alles andere wichtige?
    Wäre wirklich sehr lieb von dir.

    Hm, sorry, hat etwas länger gedauert - hab auch noch anderes zu tun ;)

    Datei: navigation.htm

    Code
    Navigation</p>
    [*]Punkt 1
    [*]Punkt 2
    [*]Punkt 3

    Datei: blabla.php

    (und ja: die hab ich mal eben schnell mit Dreamweaver zusammengeklickt, und?)

    Nur mal so als Beispiel :)

    Wenn du dazu Fragen hast, her damit :)

  • Ich habs genau so gemacht, wie dus mir gesagt hast, aber die Navigation wurde nicht angezeigt. :cry:

  • Hallo,

    also ich versteh schon was ihr hier meint nur wie sieht das mit php aus?

    Ich hab von meinem Tutorial eine vorlage für ein 3 Spalten Layout.

    bei mir sieht die index.php so aus
    [php:1:d3c49376e2]
    <?php
    error_reporting(E_ALL);


    echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n";
    echo " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
    echo "<html>\n";
    echo " <head>\n";
    echo " <title>Meine Seite</title>\n";
    echo " <link rel=\"stylesheet\" type=\"text/css\" href=\"page.css\" />\n";
    echo " <meta http-equiv=\"Content-Type\"
    content=\"text/html; charset=ISO-8859-1\" />\n";
    echo " </head>\n";
    echo " <body>\n";

    echo " <div id=\"root\">\n"; // ganz oberer Div-Holder
    echo " <div id=\"banner\">\n"; // banner
    include "banner.php";
    echo " </div>\n";
    echo " <div id=\"links\">\n"; // linkes Menu
    include "menu.php";
    echo " </div>\n";
    echo " <div id=\"mitte\">\n"; // In der Mitte der Inhalt
    include "inhalt.php";
    echo " </div>\n";
    echo " <br style=\"clear:both;\" />\n"; // css-float beenden
    echo " </div>\n";

    echo " </body>\n";
    echo "</html>\n";
    ?>
    [/php:1:d3c49376e2]

    ICh hab heute nacht auch mal was anderes auspobiert und zwar das mit $_Get['section'] hat auch prima funktioniert bis ich gemerkt hab das die datei zwar im inhalt angezeitgt wird aber da auch die nochmale inhalt.php
    steht.

    Was kann ich machen das nur die datei die ich "includet" hab angezeigt wird?


    gruß

    MasterDragon

  • also nochmal ich öffne die datei index.php dann erscheint links die menu.php in der mitte die inhalt.php und oben die banner.php und wenn ich aus der menu.php ein link anklicke kommt im Inhalt das was in der inhalt.php steht und noch das zeug was ich vom link includet hab

    nur ich will halt das wenn ich auf den Link klicke nur der inhalt vom link kommt.
    nur wie macht man das?

    gruß MasterDragon

  • Mithilfe eines CMS z.B. - grob:
    du baust die Links so um dass du deine index.php aufrufst und eine Variable übergibst die die datei enthält die includet werden soll.

    eine einfacher (und genauso unsichere) Lösung war etwas nach diesem muster:

    Link für das einfügen von inhalt.php:
    Inhalt

    deine index.php:
    [php:1:05fcd4f941]<?php
    error_reporting(E_ALL);
    $datei = ($_POST['page']) ? $_POST['page'] : ($_GET['page']) ? $_GET['page'] : "inhalt";


    echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n";
    echo " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
    echo "<html>\n";
    echo " <head>\n";
    echo " <title>Meine Seite</title>\n";
    echo " <link rel=\"stylesheet\" type=\"text/css\" href=\"page.css\" />\n";
    echo " <meta http-equiv=\"Content-Type\"
    content=\"text/html; charset=ISO-8859-1\" />\n";
    echo " </head>\n";
    echo " <body>\n";

    echo " <div id=\"root\">\n"; // ganz oberer Div-Holder
    echo " <div id=\"banner\">\n"; // banner
    include "banner.php";
    echo " </div>\n";
    echo " <div id=\"links\">\n"; // linkes Menu
    include "menu.php";
    echo " </div>\n";
    echo " <div id=\"mitte\">\n"; // In der Mitte der Inhalt
    include $datei .".php";
    echo " </div>\n";
    echo " <br style=\"clear:both;\" />\n"; // css-float beenden
    echo " </div>\n";

    echo " </body>\n";
    echo "</html>\n";
    ?>[/php:1:05fcd4f941]

    wenn du nun noch eine zweite inhaltsdatei anlegen möchtest nennst die z.B. inhalt2.php und baust den Link dafür so: Inhalt 2

  • Also ich habs ausprobiert.
    bei mir kommt aber diese Fehlermeldung
    Notice: Undefined index: page in D:\xampplite\htdocs\index.php on line 4

    Notice: Undefined index: page in D:\xampplite\htdocs\index.php on line 4

    was soll ich machen?