|
|||
Links in <div>-Container laden ohe Frames zu verwenden
Hi !
Hoffe ihr könnt mir bei meinem Problem helfen: Ich habe mir eine Seite mit 3 div-Containern erstellt. Einen für die Titelzeile, 1 für die Navigation und 1 für den Inhalt. Ist es möglich, einen Link (ohne Frames) aus der Navigation in den Inhalt-Container zu laden ohne das die ganze Seite neu laden muss. Sonst müsste ich ja für jeden Inhalt eine eigene Seite schreiben, die aber immer die gleiche Navigation und die gleiche Titelzeile enthält. Ich hoffe ihr versteht mein Problem und könnt mir helfen. Falls das nicht möglich ist, was ich vor habe: Wie kann man das sonst lösen (außer mit Frames) ? Thx & Greetz, Bastian |
Sponsored Links |
|
|||
ich habe sowas vor jahren mal probiert. damals war es möglich einem div eine source-angabe zu geben, genau wie beim iframe. allerdings war das glaub eine internet explorer und nicht standard konforme lösung.
mit xhtml 1.0 strict gibt es meines wissens keine lösung für dein problem. du musst die seite auf jeden fall neu laden. allerdings kannst du das problem über eine serverseitige scriptsprache wie php oder asp lösen. |
Sponsored Links |
|
|||
Hi diablodroid,
das ist nicht möglich. CSS 4 You hat auch für jeden Inhalt eine eigene Seite und beinhaltet jedesmal die gleiche Navigation. Das ist aber gar nicht so schlimm. Wenn du darauf achtest, dass die Navigation im Quellcode auf jeder Seite exakt gleich geschrieben ist, kannst du Änderungen über dateiübergreifendes Ersetzen ändern. Oder du verwendest wie ich PHP. Dann kannst du das Menü mit einer Funktion ausgeben. Gruß Thomas |
|
|||
Dnake
Danke für deine Hilfe. Schade, dass es nicht geht. Aber wie sieht das mit der XHTML Lösung aus. Und mit PHP, wie sähe das aus. Wird dafür mySQL benötigt ?
Hoffe du kannst mir nochmal helfen ! Bastian |
|
|||
Re: Links in <div>-Container laden ohe Frames zu verwe
Hallo Bastian,
ich habe gerade für ein kleineres Web meine Geschichten mit XSLT definiert. Naviagtion, Sitemape, Header und Footer werden aus einer XML-Datei generiert. Ich erstelle die Seiten serverseitig, so das der Client davon nichts merkt. Ich bin mit der Lösung sehr zufrieden. Einziger Nachteil: XPath und XSLT-Syntax kannst Du nicht an einem Vormittag lernen! Gruß Heinz Zitat:
|
|
|||
mit php geht das extrem einfach. du benötigst kein mysql dazu. es gibt dabei 2 verfahren:
a) du bindest die immer wiederkehrenden teile der seite (also header, menü und footer) in jeder einzelnen seite via include oder require ein. b) du hast eine rahmendatei und bindest die jeweiligen module/seiten in diese ein. ich persönlich bevorzuge letztere lösung. das sieht dann in etwa so aus: du hast eine ganz normale html-seite mit allem drum und dran, nur statt den inhalt, der auf jeder seite anders ist statisch drinstehen zu haben, fügst du an der entsprechenden stelle folgenden code ein: Code:
<?php if (!isset($_GET["file"])) { if (file_exists($_GET["file"].".php")) include ($_GET["file"].".php"); else include ("error404.php"); } else { include ("start.php"); } ?> Code:
... |
|
|||
Zitat:
Das wäre so genau das was ich suche, um das iframe von meiner Seite zu verbannen!^^ Nur klappt es bei mir irgendwie nicht mit dem Link. Ich habe drei dateien aufgebaut, eine Datei als Rahmendatei (index.php) und zwei weitere als Inhalte (i1.php und i2.php) die an die Stelle kommen sollen wo auch der php Code drin ist. Wenn ich aber in der index.php Datei den Link zu einem Inhalt machen möchte, passiert nichts. Jetzt weiß ich nicht woran das liegt, habe ich den Link falsch gesetzt oder muss ich noch irgendetwas in die Dateien einfügen. Was ich biser gemacht habe: index.php Zitat:
In die anderen beiden dateien, also die Inhalte, habe ich einfach nur einen Text reingeschrieben, ohne sonst irgendetwas. Hier noch die Beispieldatei: index.php Vorschau |
|
|||
Dein GET-Parameter heißt open. Dann darfst Du nicht file abfragen
Code:
$_GET["open"] oder $open wenn register_globals gesetzt ist: http://www.php.net/manual/de/reserve....variables.get
__________________
"Das macht nicht wirklich Sinn" hat eigentlich keinen Sinn! |
Sponsored Links |
|
|||
Hallo!
Du kannst auch einen AJAX-Ansatz wagen. Hierbei würdest Du sozusagen wie in obigem Beispiel einen Seitenrahmen laden und dann immer nur den Inhalt eines divs ändern, ohne immer die ganze Seite neu laden zu müssen. Und so funktionierts: index.php: Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>Test</title> <script type="text/javascript" src="request.js"></script> </head> <body> <ul>[*]Seite 1[*]Seite 2[*]Seite 3[/list] <div id="content"> <script type="text/javascript"> sndReq('getSeite1'); </script> </div> </body> </html> Code:
function createRequestObject() { var ro; var browser = navigator.appName; if(browser == "Microsoft Internet Explorer"){ ro = new ActiveXObject("Microsoft.XMLHTTP"); }else{ ro = new XMLHttpRequest(); } return ro; } var http = createRequestObject(); function sndReq(action) { http.open('get', 'output.php?action='+action); http.onreadystatechange = handleResponse; http.send(null); } function handleResponse() { if(http.readyState == 4){ var response = http.responseText; var update = new Array(); if(response.indexOf('|' != -1)) { update = response.split('|'); document.getElementById(update[0]).innerHTML = update[1]; } } } Code:
<?php switch($_REQUEST['action']) { default: case 'getSeite1': $filename = 'seite1.htm'; break; case 'getSeite2': $filename = 'seite2.htm'; break; case 'getSeite3': $filename = 'seite3.htm'; break; } $handle = fopen($filename, 'r'); $content = fread($handle, filesize($filename)); fclose ($handle); echo 'content|'.$content; ?> Code:
<h1>Seite 1</h1> Lorem Ipdum dolor.</p> Code:
<h1>Seite 2</h1> Lorem Ipdum dolor.</p> Code:
<h1>Seite 3</h1> Lorem Ipdum dolor.</p> PS: Und ja, ich hatte viel Zeit.
__________________
slideshow: iTunes-music-store-like Slideshow-Script |
Sponsored Links |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Elemente in einem Div Container links & rechts ausrichte | oliwa | CSS | 8 | 16.07.2004 15:39 |
Problem bei Positionierung eines <div> im Container | Robse | CSS | 2 | 12.06.2004 13:43 |
<div> container ausrichten. IE6 u. Mozilla1.6 | scan | CSS | 3 | 04.03.2004 14:16 |
<div> container verschwindet?! | Gilbert | CSS | 3 | 30.09.2003 14:55 |
<div> container dynamisch vergrößern | Anonymous | CSS | 7 | 27.07.2003 12:40 |