• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Div statt Frames

Status
Für weitere Antworten geschlossen.

lp10

Neues Mitglied
Hallo,
hätte da mal eine Frage, statt Frames zu benutzen, will ich meine Homepage mit div aufteilen. Die 3 Bereiche menü, Main und Root hab ich mit Divs erstellt.

Hab nur ein Problem. Wie krieg ich das im Menü mit den Links hin. Also dass beim Aufruf eines Links im Menü, die Seite im Main Fenster dargestellt wird
und keine neue Seite dafür aufgebaut werden musst.

Hatte es mit target="main" probiert, klappt aber nicht.


<p align="center"><a href="main.html">Home</a></p>

Danke für eure Hilfe
 
Entweder ein iFrame, rat ich dir ab, da es alt ist.
Man macht das heutzutage mit PHP.

Unterstützt dein Server PHP?
Wenn ja, erkläre ich dir gerne wie.


MfG, matibaski
 
Ich denke wohl kaum, dass einer, der von Frames auf Container geht, dass der schon PHP und JavaScript versteht, um Ajax einzusetzen ;)

Also ich poste mal schon die PHP Lösung, da es vielleicht andere gibt, die das suchen.

Also man stellt den Code dort rein, wo man den Inhalt haben will.
Der Code ist unten dann erklärt.
PHP:
<?php
if(!isset($_GET['seite']))
{
 $_GET['seite'] = 'home';
}
else
{
 switch($_GET['seite'])
 {
 case 'home' : include "pfad/homedatei.php"; break;
 case 'seite2' : include "pfad/seite2.php"; break;
 case 'seite3' : include "pfad/seite3.php"; break;
 }
}
?>
Also:
if(!isset($_GET['seite'])) > Also damit prüf der Parser, ob seite= bestimmt ist, im URL Feld.
$_GET[] ist die Superglobale für URL Namen.

$_GET['seite'] = 'home'; > Damit setzt man einen Standartwert. Wenn man am Anfang auf die Seite zugreift, ist noch keine Superglobale vergeben, also setzt man einen Standart. Wieso home, hat man beim else{} gesehen.

Nun macht man ein switch($_GET['seite'])
So kann man quasi eine Liste machen von der Superglobalen und dann allen einzeln eine Funktion zuteilen. Das Schlagwort dafür: case

Nun sieht man case 'home'
Also man kann sich das so vorstellen:
seite.php?seite=home
So weiss PHP, die Seite ist home, also benutzt er die Funktion für das case 'home'.
Und so geht das mit den case weiter. Für eine weitere Seite, einfach ein neues case setzten, und den Pfad zur Datei angeben.

Übrigens:
include steht da, damit man eine Datei einfügt.

Also das ganze auf Deutsch ;)
<?deutsch
wenn(seite= nicht bestimmt)
{
seite = home
}
wenn doch
{
liste(seite=)
{
punkt 'home' : einfügen "dateien/homedatei.php"; pause;
punkt 'seite2' : einfügen "dateien/seite2.php"; pause;
}
}
?>
So kann man das also übersetzten.

Ich hoffe, ich konnte das gut erklären, denn meine VOrgänger, die mir das erklärten hatten auch Probleme :D

ACHTUNG:
Die Datei, inder der PHP Code ist, muss eine .php Datei sein, sonst geht das nicht.


MfG, matibaski
 
Da bin ich anderer Meinung.
Für einen Anfänger würde es wirklich mit AJAX einfacher gehen, wenn er sich mehr mit Ecma beschäftigt hat, als mit PHP.

Naja, das ist wohl deine Sache, falls du dich dafür interessierst, könnte ich dir eine Lösung mit prototype-js zeigen.

Gruß, Eugen.

//EDIT:
@Mati:
PHP:
<?php
//Wenn du so eine URL hast "http://www.deinesei.te/index.php?seite=home
//fange dort das "seite=gewünschteseite" ab.
//Das kann man also mit der Variable $_GET['seite'] ansteuern.
//Der Befehl switch prüft mehrere Fälle durch.
switch($_GET['seite'])
{
//Wenn $_GET['seite'] "home" ist, mache das:
case 'home' : include "pfad/homedatei.php"; break;
//...
case 'seite2' : include "pfad/seite2.php"; break;
//...
case 'seite3' : include "pfad/seite3.php"; break;
//Wenn davon nichts zutrifft, dann mache das:
default: include "pfad/homedatei.php"; break;
}
?>

//EDIT2:
@Mati: break != pause, break = (hier: ) brechen.
Würde man kein break hnsetzen, würde es alle anderen Fälle durchführen, deshalb würde brechen besser passen.
 
Zuletzt bearbeitet von einem Moderator:
Ich benutzte default eig. als Errorseite ;)
Also bei meinem Script ist also seite= immer als home bestimmt, wenn es eig. nicht bestimmt ist.

Übersetze mal break.
Das heisst Pause ;) Bin davon ausgegangen :D



MfG, matibaski
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben