# Tabellen und ihre Verlinkung ...hab 0 peilung!



## Zymiel (1. Mai 2002)

Also es geht um folgendes:
Ich gestalte gerade unsere Clan HP neu und arbeite diesmal mit Tabellen anstatt mit Frames.
Und nun bin ich an dem Punkt, an dem ich gewusst habe das ich scheitern werde ;( nämlich den Links.

Das ganze Design sieht so aus;

Oben ist ein Banner, der zurgleich zur (Teil)Navigation dienen soll,
links eine Tabelle mit der Hauptnavigation, in der Mitte der Content.

Folgendes will ich;
Wenn ich in der Teil-Navigation(im banner) auf einen link clicke, z.b "Clan" dann sollen in der Tabelle mit der Hauptnavigation die untermenüpunkte erscheinen, die dementsprechend zu "Clan" gehören, z.b Clannews, Members, Wars, usw.. und wenn ich dann einen von DIESEN Links anclicke, dann soll der Inhalt der Site in der Content Tabelle erscheinen!
(ich hoffe ihr versteht ugf wie ich es will/meine)

So und da hänge ich schon.
Wie mache ich die links!?

Vorher mit Frames hat das ganze ja so ausgesehen:
<a href="irgendnesite.htm" target="_blank(z.b)">Linkname</a>

So kann ich dem Link ja ein Ziel zuweisen, wo der inhalt geladen werden soll, aber wie bitte schön funzt das mit Tabellen???
Ich meine, ich kann ja den Tabellen oder Spalten keine Namen geben und dann dem Link sagen [target="tabellenname"] geht ja nicht.

Ich mache das ganze in PHP und in meinem Buch steht darüber nichts!
Ich habe das Layout auch schon in einzelne dateien gesplittet und in eine Index.php mit den befehlen "include("blablabla"); integriert.
In meinem Buch hat nur gestanden, ich müsste jetzt in jede meiner seiten das layout so integrieren, wie ich es bei der Index.php gemacht habe.
Aber ich verstehe das einfach nicht!?

Muss ich dann für jede Site die inhalt trägt jedesmal das Layout nochmals includen!?
Das wäre doch dumm, denn in meinem buch steht auch, das es viel zu umständlich wäre, jedesmal das komplette design in die entsprechende datei zu kopieren und dann halt den inhalt ändern wie ich es will
und die links dann einfach ändern, das der inhalt im selben fenster geöffnet wird, so das jedesmal wenn ich auf einen link clicke, das komplette layout nochmal geladen wird, jedoch der inhalt der von der entsprechenden datei ist!? das wäre ja nicht sinn der sache..und dann bräuchte ich ja die include funktion nicht!

Also wie geht das mit den Links!?


----------



## braindad (1. Mai 2002)

ganz einfach: du mußt eine neue seite basteln, in welcher die untermenüs drin sind. 

bessere erklärung: 

1. seite: oben "home" "clan" usw. in der hauptnavi ist nix.
2. seite: oben wie gehabt. hauptnavi: die untermenüs.

beide seiten enthalten das komplette design der HP. bei click auf "clan" wird zB dann die clan.html geladen, in welcher nicht nur das menü von oben drin ist, sondern im linken bereich auch das untermenü. wen man nun auf einen untermenüpunkt klickt, wird wieder eine neue, komplette seite geladen, in welcher zusätzlich der content enthalten ist.


eine zweite möglichkeit wäre eine navigation per layer, welche hidden sind und erst beim klick auf einen link sichtbar werden. da habe ich aber im mom keine fertiges zur hand, wenn ich eins finde, editiere ich das post hier.


----------



## Psyclic (1. Mai 2002)

ich hab dazu mal nen tutorials geschrieben... das dürfte dir weiterhelfen.

http://www.tutorials.de/forum/showthread.php?threadid=7279


----------



## Zymiel (1. Mai 2002)

also muss ich doch praktisch in jede seite mit inhalt auch nochmal das komplette design einbinden..reinkopieren..oder mit php includen !?

Aber warum dann der Umstand!?
Warum macht man dann nicht einfach frames, sowie man die tabellen haben will..und macht dann in die frames die tabellen !?
Hätte man doch die ganze kagge mit dem design includen gespart !?

Und das Problem, das eine Framesite, die durch eine suchmaschine gefunden wurde nicht komplett geladen wird, kann man doch mit nem kleinen trick in dreamweaver 4 umgehen!

Also warum dann eigentlich der "Umstand" ???


----------



## Zymiel (1. Mai 2002)

> _Original geschrieben von Psyclic _
> *ich hab dazu mal nen tutorials geschrieben... das dürfte dir weiterhelfen.
> 
> http://www.tutorials.de/forum/showthread.php?threadid=7279 *



Hey fett, danke für den link!

Ehm aber eine Frage hab ich noch:

muss ich trotz des <a href="main.php?go=eineseite.php">
dann nochmal das design in die "eineseite.php" includen!?
Ja oder? weil sonst würde php ja nicht wissen wo der inhalt von "eineseite.php" überhaupt hin soll, oder wie oder was?


----------



## Zymiel (1. Mai 2002)

hmm...also das mit dem link funzt immernoch net richtig...ladet einfach keinen inhalt...

Ich hänge hier mal 3 dateien ein.
In der Kopf.php hab ich nen vermerk gemacht namens "HIER DER LINK"

würde jemand von euch mir mal zur demonstration nen link einbinden und die dateien dementsprechend modifizieren, damit der inhalt des links in der mittlere tabelle eingefügt wird!? bidde...bidde das wär echt nett...hängt dann wenn ihr fertig seid ne kleine datei an, die geladen wird, damit ich auch sehe wie es funzt!

Danke

ps. die datei ist ne zip und enthält die 3 dateien kopf.php, index.php und fuss.php ..also das hab ich schon gemacht so wie es in dem tut stand.


----------



## Psyclic (2. Mai 2002)

so ... ich hab dir das jetzt mal modifiziert

und in die index noch ne funktion eingebaut das falls die variable $go nich gesetzt ist ( die du übrigens noch gar nich included hast ) eine standartseite aufgerufen wird... zB. news oder was weis ich...

also schaus dir an und bei fragen .. POSTE diese hier


----------



## Kettu (10. November 2003)

Ich hab so ziemlich das gleiche Problem. Alles steht, nur die verdammte Verlinkung  

Ich hab eine php-Website aufgebaut mit Kategorien (im Kopf) und Unterkategorien (links).

Über die Kategorien werden die jeweiligen Untermenüs aufgerufen, was auch einwandfrei funktioniert. Mein Problem ist nur, dass ich über die Untermenüs nicht die html-Dateien mit dem eigentlichen Inhalt in das "Fenster" rechts davon einfügen kann und dass beim ersten Aufrufen der Kategorie nicht die jeweilige Startseite geladen wird.
Ich hab keine Skins. Wozu auch?! Es ist eine einzige mögliche Oberfläche. Ich hab für die einzelnen Kategorien natürlich jeweils extra index.php's erstellt, damit die Untermenüs geladen werden. Funktioniert, wie gesagt. Aber eben die Verlinkung auf die Unterseiten nicht.
Die Kategorien stehen in untergeordneten Ordnern (der Übersicht halber). Wie schreibe ich nun die Verlinkung, dass ich 

1. die Startseite mit lade und 
2. über die Untermenüs die html-Seiten mit den Informationen ins dafür vorgesehene Fenster laden kann.

Danke für eure Hilfe!


----------



## Zymiel (10. November 2003)

Wow..ich hatte den Thread hier schon ganz vergessen..inzwischen hab ich das ganze auch kapiert und hab den umgang mit php nun so ziemlich geschnallt ;D

Also ich hatte es damals so gelöst:

Du hast 3 Tabellen (beispiel)

Die eine Tabelle ist deine Hauptnavigation, mit den Beispielinhalten Home, Mitglieder, Kommunikation.
Nennen wir diese Tabelle hier einfach mal Haupt Navi - Tabelle (nur fürs beispiel)

Die Zweite Tabelle wird die Tabelle, in die du die unterpunkte der Links einbindest, z.b. für "kommunikation": Forum und Guestbook.
Diese nennen wir hier einfach mal....... Untermenu - Tabelle

Die Dritte Tabelle ist deine Content Tabelle, in die auch der Inhalt aus der Untermenu Tabelle includiert wird.

Nun machen wir das so:

In der Haupt Navi hast du wie gesagt die links Home, Mitglieder und Kommunikation.

Nun geben wir dem link die zuweisung: 
<a href=index.php?VAR_name1=untermenu_kommunikation.php&VAR_name2=inhalt_fuer_kommunikation.php>LINKNAME</a>

So, zerlegen wir das ganze mal...

index.php <- die datei in der dein layout liegt, die tabellen usw

?Var_name1 <- du legst in der index.php in der Untermenu - Tabelle die Variable fest:
<?php include("$Var_name1"); ?>

=untermenu_kommunikation.php <- in dieser datei legst du deine untermenü links ab!

&VAR_name2 <- die zweite Variable, die du in der index.php und zwar in der content tabelle festlegst:
<?php include("$Var_name2"); ?>

=inhalt_fuer_kommunikation.php <- die zweite datei, in der sich dein inhalt befindet, den du in die content tabelle includieren willst !

wenn du nun auf den link kommunikation klickst, öffnet sich in der untermenu tabelle die datei, in die du die links ausgelagert hast..klickst du nun auf so einen link in der untermenu tabelle, dann öffnet sich der inhalt in der content tabelle.

Natürlich musst du diese links genau wie oben definieren...z.b lautet der link in der untermenu tabelle bei kommunikation für z.b. "forum" so:

<a href="index.php?var_name1=kommunikation.php&var_name2=forum.php">FORUM</a>

Fertig.


----------



## Kettu (10. November 2003)

Wow! Das klingt doch schon bedeutend verständlicher für mich!  Nichts für ungut.  Werd das zu Hause mal umsetzen. Ich hoffe, es klappt. Na ja, gut klingen tut's auf jeden Fall. Danke schonmal. *wink*


----------



## Kettu (11. November 2003)

*Klappt nicht*

Da mein Edit wohl übersehen wird, erstelle ich mal einen Doppelpost. Nicht böse sein! ;-) 

11.11.2003 08:35

Es ist doch zum Haareausraufen! Es funktioniert einfach nicht!  Dabei ist alles so logisch! Aber nö   Es wird nur die Index.php mit dem Hauptmenü geladen. Das Untermenü und die Informations-Spalte werden gar nicht angezeigt.
Ich weiß ja nicht, ob das eventuell an meinem Server auf'm Rechner liegt (hatte mal irgendwo gehört, dass bei sowas Probleme auftreten können). Ich habe Apache bei mir installiert. Wäre es möglich, dass es online läuft ( habe es noch nicht testen können) und nur auf meinem Server nicht?

[edit]08:55

Mir ist grad noch eingefallen, dass ich ja - selbst wenn das laufen würde - immer noch das Problem , dass bei Aufrufen der index.php (beim ersten Laden der Seite) ja auch eine Willkommenseite geladen werden müsste. Wie fabriziere ich das denn? Schließlich ist da in dem Fall ja kein so langer Link sondern nur .../index.php


----------



## Kettu (13. November 2003)

*Huch? Wo sind denn die ganzen Posts von gestern hin?*

Na ja, egal, es funktioniert jedenfalls immer noch nicht Zymiel!   Hab's grad hochgeladen und die Verknüpfungen genau so gemacht, wie's alle sagen, aber es wird einfach immer nur die index.php so aufgebaut, wie für die Startseite konfiguriert. 
Werd demnächst mal die andere Version versuchen (mit der Startseite), die du vorgeschlagen hast. Es ist einfach nur noch frustrierend! 

Edit 21:45

Okay, hab jetzt wieder den Standard-include-Befehl in die index.php eingefügt und jetzt gehen die Links *freu*  Allerdings geht dafür die Startseite nicht mehr.  Werde wohl deinen Rat befolgen müssen und eine extra-Startseite definieren.
Ich hoffe, dann klappt alles einwandfrei! 

Ach so, der Fehler auf der Index.php ist der folgende:

Warning: main(): Failed opening '' for inclusion (include_path='.:/usr/share/php') in ...


----------



## Zymiel (14. November 2003)

Ja das hab ich mich auch schon gefragt mit den Einträgen..dachte schon ich hätte nur geträumt hier noch was gepostet zu haben 

Gut das es jetzt f u n z t 

Das mit der index-fehlermeldung liegt halt daran, daß deine Weiterleitung die datei, die du includieren lässt nicht da ist.

Versuchs ma so wie ichs dir geschrieben hab, mit <?php header("urlzudeinerhauptseite"); ?>

Sollte f un zen


----------



## Kettu (14. November 2003)

> Das mit der index-fehlermeldung liegt halt daran, daß deine Weiterleitung die datei, die du includieren lässt nicht da ist.
> 
> Versuchs ma so wie ichs dir geschrieben hab, mit <?php header("urlzudeinerhauptseite"); ?>
> 
> Sollte f un zen


Also du meinst, eine extra index.php, die dann auf eine andere *.php umleitet?

Es muss aber auch mit der indes.php gehen. *seufz* Wenn doch mein Bekannter mal meine Mail beantworten würde. Bei dem auf der Seite geht das nämlich!


----------



## Zymiel (14. November 2003)

Klar...du kannst den header auch in deine index.php schreiben.

Einfach vor dem html - <body> tag, also nach dem <header> tag folgendes hinzufügen:

<?php
header("Location: http://url.xx/index.php?var_name1=blabla.php&var_name2=blablubb.php");
exit;
?>

Dann leitet der automatisch in deiner index.php weiter.


----------



## Kettu (16. November 2003)

> _Original geschrieben von Zymiel _
> *Klar...du kannst den header auch in deine index.php schreiben.
> 
> Einfach vor dem html - <body> tag, also nach dem <header> tag folgendes hinzufügen:
> ...


Hm, das habe ich gemacht, dann wird die Seite aber gar nicht mehr aufgebaut, sondern ich ekomme folgende Fehlermeldung:

_Warning: Cannot modify header information - headers already sent by (output started at /usr/local/httpd/htdocs/.../ceta/index.php:7) in ... line ..._

Habe den Befehl so eingegeben wie du gesagt hast, also zwischen </head> und <body>. Habe  es auch an anderen Stellen probiert, aber es tut sich einfach nichts außer dem oben genannten Fehler


----------



## Zymiel (16. November 2003)

Dann versuchs mal echt so, lagere deine jetztige index.php in eine andere datei um und schreib in die index.php nur den header code da ^^


----------



## Kettu (16. November 2003)

> _Original geschrieben von Zymiel _
> *Dann versuchs mal echt so, lagere deine jetztige index.php in eine andere datei um und schreib in die index.php nur den header code da ^^ *


Okay, dann nenn ich die jetzt mal main.php. Das bedeutet natürlich - denk ich mal - dass ich auch die Verlinkungen statt index.php?... auf main.php? ändern muss. Ich frag nur zur Sicherheit, auch wenn's blöd klingt, aber ich steh heut irgendwie neben der Spur.

Edit:
Spar dir die Antwort! Es funktioniert *jubel*   Ich könnt dich küssen! Aber ich glaub, da hätt mein Schatz was dagegen


----------



## Zymiel (16. November 2003)

:-( 

 ahjo dann hf mit deiner page 
Kannst mir ja mal die url sagen, wenn sie fertig is, dann komm ich ma gucken  =)


----------



## Kettu (17. November 2003)

> _Original geschrieben von Zymiel _
> *:-(
> 
> ahjo dann hf mit deiner page
> Kannst mir ja mal die url sagen, wenn sie fertig is, dann komm ich ma gucken  =) *


Klar, ich schick sie dir dann per PM oder so. Kann aber noch ein Weilchen dauern, weil ich noch ein paar andere Projekte laufen hab, die unter Zeitdruck stehen.


----------

