Computer Hardware Forum - TweakPC

Computer Hardware Forum - TweakPC (https://www.tweakpc.de/forum/)
-   Programmiersprachen (https://www.tweakpc.de/forum/programmiersprachen/)
-   -   [php] Links vom Menü in Container öffnen (https://www.tweakpc.de/forum/programmiersprachen/71824-php-links-vom-menue-container-oeffnen.html)

UnoOC 19.08.2009 14:26

[php] Links vom Menü in Container öffnen
 
Ich habe hier eine PHP-Seite und dabei ein kleines Problemchen:

Die Seite ist wie folgt aufgebaut (und funktioniert auch ganz gut):
Oben: Banner
darunter: mainnav
darunter Links: menu
rechts neben dem menu: contents (Hier wird der Inhalt angezeigt)

Im Menü sind einige Links, die ein neues Fenster öffnen sollen - das klappt (ist ja auch nicht schwer).

Bei zwei Links hätte ich nun gern, dass sich diese im "Content-Feld" öffnen und der Rest bleibt. Nur wie mache ich das?

Ich benutze Dreamweaver 8 und kann da als Ziele für die Links nur blank, parent, self und top angeben. Das funktioniert nicht, also werd ich wohl was direkt im Code eintragen müssen - wäre gut, wenn mir einer sagen könnte, was ...


UnoOC

PS: Ich gebe zu, ich hab nicht viel Ahnung von PHP, also bitte idotensicher erklären ...

Madddi 19.08.2009 15:14

AW: [php] Links vom Menü in Container öffnen
 
Das hat nicht viel mit PHP zu tun. PHP generiert ja nur HTML-Code. Du könntest das Problem mit Frames lösen. Das ist allerdings nicht sehr gebräuchlich. Schon eher Gebräuchlich ist, das Design entweder in eine Datenbank oder in eine externe Datei zu schreiben, und daraus immer wieder zu laden, z.B. so (für externe Datei):

head.php
[php]<?php
echo '<html>
<head>
#Meta Tags, <title> usw.
</head>
<body>';
?>[/php]

menu.php
[php]<?php
echo '<table>
<td>
<tr>Menü-Links</tr>
</td>
</table>';
?>[/php]

footer.php
[php]<?php
echo '</body>
</html>';
?>[/php]

index.php
[php]<?php
include('head.php');
include('menu.php');
echo 'zusätzlicher Content, wie Artikel...';
include('footer.php');
?>[/php]

Für große Webseiten, oder solche, die oft geändert werden müssen, ist das sicher nicht optimal. Hat aber bei meiner ersten kleinen Seite gut funktioniert. Viel besser und praktischer ist es natürlich, Datenbanken zu benutzen. Sobald das einmal läuft, ist es einfach nicht so wartungsaufwendig, und neue Artikel sind dann auch schneller hinzugefügt. Wenn ich dir mal eine kleine Vorlage schreiben soll, sag Bescheid.

UnoOC 19.08.2009 17:12

AW: [php] Links vom Menü in Container öffnen
 
Das wäre eine Möglichkeit, wenn es um eine komplett neue Seite gehen würde. Die Seite, um die es geht, ist aber komplett fertig ...

UnoOC

Madddi 19.08.2009 17:26

AW: [php] Links vom Menü in Container öffnen
 
Dann verstehe ich nicht ganz, was du willst. Link?

EoN 20.08.2009 08:44

AW: [php] Links vom Menü in Container öffnen
 
@Madddi: Das ist ja aus softwaretechnischer Sicht grausam was Du da machst ;-)
Wenn in einer Datei der Tag aufgeht, muss er auf der gleichen Datei wieder zu gehen. An sonsten wird das bei komplexeren Anwendungen ziemlich schnell unübersichtlich.

Bei der Neugestaltung würde ich mich immer am MVC Pattern ausrichten und eine extra View gestalten, um eine andere Zusammenstellung der Elemente abzubilden. In diesem Fall könnte man dann sogar die gleiche View mit neuen Inhalten füllen.

Bei Deinem Problem UnoOC ist das etwas schwieriger, da Du nicht eindeutig geschrieben hast aus welchen HTML Bestandteilen die Seite nun besteht.
Auch wenn es aus verschiedenen bei Google nachzulesenden Gründen nicht so gut ist Frames zu verwenden, sieht es für mich jetzt so aus, als hättest Du es in dieser Seite so gelöst.
In diesem Fall kannst Du einfach als "target" den Frame Namen angeben. Also einfach statt "_blank", was bei Dir in Dreamweaver schon vordefiniert ist, den Namen des Frames eintragen. Das Feld sollte auch in Dreamweaver mit jedem beliebigen Freitext überschreibbar sein.

Madddi 20.08.2009 10:15

AW: [php] Links vom Menü in Container öffnen
 
[quote=EoN;635996]@Madddi: Das ist ja aus softwaretechnischer Sicht grausam was Du da machst ;-)
Wenn in einer Datei der Tag aufgeht, muss er auf der gleichen Datei wieder zu gehen. An sonsten wird das bei komplexeren Anwendungen ziemlich schnell unübersichtlich.[/quote]
Jo, ich weiß das. Habe ja auch geschrieben, dass sich das System nur für sehr kleine Seiten eignet. Für Sachen, die über eine private Homepage hinausgehen, sollte man lieber direkt zu einem CMS grifen, oder sich selber so etwas bauen.

DonSchado 20.08.2009 14:26

AW: [php] Links vom Menü in Container öffnen
 
hm,
also wenn dann würde ich eher mit [I]include_once[/I] arbeiten und die einzubindenden Dateien, mit dem Präfix [I]inc.[/I] in einen extra Ordner [I]include[/I] packen.

Aber ich glaube das ist hier an der Stelle total egal. ;) Wollte nur Madddi's Post auffangen
*gebt-mir-mehr-Senf*

Grüße

UnoOC 20.08.2009 14:33

AW: [php] Links vom Menü in Container öffnen
 
@ EoN: Frames nutzt die Seite keine - das würd ich (glaube ich) auch hinbekommen, wenn das so wäre. Daher funktioniert das leider nicht.

Die Seite befindet sich momentan auf nem lokalen PC, auch sind da schon diverse Interna drin, so dass ich die Seite nicht hochladen und schon gar nicht öffentlich zugänglich machen darf.

Ich hab inzwischen herausbekommen, dass das wohl ne Dreamweaver-Baukasten-Seite ist. Evtl kann ich das ja irgendwie hochladen, mal sehen ...


@ Don Schado: Ich verstehe nichtmal Bahnhof ...

UnoOC

DonSchado 20.08.2009 14:40

AW: [php] Links vom Menü in Container öffnen
 
lass dich nicht verunsichern ;)

kannst du denn auch nicht den groben Quellcode hier posten?
Ohne deine internen Texte, gerne mit Blindtexten, aber so das man mal alle <Tags> und die Struktur sieht.

UnoOC 20.08.2009 14:47

AW: [php] Links vom Menü in Container öffnen
 
Bessere Idee:
Hab mal ein leeres Beispiel hochgeladen Link: [URL="http://mitglied.lycos.de/unooc/hptest/"]Testseite[/URL]

So ist auf jeden Fall der Aufbau ...

UnoOC

DonSchado 20.08.2009 14:59

AW: [php] Links vom Menü in Container öffnen
 
Also es soll quasi nur der Inhalt vom Browser nachgeladen werden, die Navigation aber stehen bleiben!?

Da wäre die einfachste Lösung, wie EoN angesprochen hat, mit Frames zu arbeiten.
Kennst du schon selfhtml? [url=http://www.onscreen.at/selfhtml/html/frames/definieren.htm]Frames / Framesets und Frames definieren[/url]

Aber warum "muss" die Navigation stehen bleiben?
Wenn es eine Seite werden soll, die auch SEO konform sein soll, würde ich von Frames abstand nehmen.
Es gibt auch Lösungen mit JavaScript oder sogar CSS.
Aber ob der Aufwand zum Nutzen steht?!

Ich hab das Einsatzgebiet der Seite noch nicht verstanden. :)

UnoOC 20.08.2009 15:43

AW: [php] Links vom Menü in Container öffnen
 
[quote=DonSchado;636057]Also es soll quasi nur der Inhalt vom Browser nachgeladen werden, die Navigation aber stehen bleiben!?[/quote]
Ja

[quote=DonSchado;636057]Da wäre die einfachste Lösung, wie EoN angesprochen hat, mit Frames zu arbeiten.[/quote]
Nochmal: die Seite ist schon komplett fertig, alle Inhalte auch. Das sind alles fertige PHP-Seiten.

Es geht nur um die Öffnung der Links im gekennzeichneten Bereich. Der Aufbau ist adäquat dem von mir verlinkten Beispiel.

Von dem ganzen Frames definieren & Co. hab ich in etwa so viel Ahnung wie von dem Aufbau eines Kommunikationssatelliten. Ich weiß, das er existiert, aber das wars auch schon.


[quote=DonSchado;636057]Aber warum "muss" die Navigation stehen bleiben?[/quote]
Das ist eine Festlegung und Vorgabe.


[quote=DonSchado;636057]Ich hab das Einsatzgebiet der Seite noch nicht verstanden. :)[/quote]
Das Einsatzgebiet ist für die Problemlösung wichtig?


UnoOC

DonSchado 21.08.2009 08:57

AW: [php] Links vom Menü in Container öffnen
 
Ok, aus deiner Antwort schließe ich, dass es sich hier um was berufliches handelt. ;)

Ich würde aber jetzt aus meiner Sicht einfach mal behaupten, das du so nicht drum rum kommst, entweder die Seite neu aufzubauen, oder eine komplexere Lösung drauf zusetzen.

Beides fällt für dich aber raus, so wie ich das verstanden habe.

PHP wird ja auf dem Server ausgeführt. Das generierte HTML wird dann an deinen Browser geschickt. Das heißt bei einem neuen Klick auf einen Link, geht das Spiel wieder von vorn los.
Eine dynamische Lösung, geht also nur wenn du im Client (Browser), über beispielweise JavaScript, im DOM einzelne Knoten ein und ausblendest, bzw. nachlädst.

Beispiele siehe hier:
[url=http://www.oreilly.de/catalog/designjs2ger/chapter/f_Kapitel03.html]Webdesign mit JavaScript: Frames steuern[/url]
[url=http://javascript.internet.com/navigation/frame-navigation.html]The JavaScript Source: Navigation: Frame Navigation Demo[/url]
[url=http://de.selfhtml.org/javascript/beispiele/anzeige/zweiframes.htm]Zwei Frames gleichzeitig ändern[/url]

[quote=UnoOC;636059]Nochmal: die Seite ist schon komplett fertig, alle Inhalte auch. Das sind alles fertige PHP-Seiten.[/quote]
Das wäre nicht unbedingt ein Problem, sofern du alle php Dateien bearbeiten kannst.
Du kannst auch html vor bzw. hinter die <php> Tags schreiben.

Ich hoffe hier meldet sich noch jemand der 'ne bessere Idee hat. :rolleyes:
Grüße

EoN 21.08.2009 22:41

AW: [php] Links vom Menü in Container öffnen
 
OK ich habe mir Dein Beispiel mal angeschaut.
Einen Link direkt in einem DIV-Container zu öffnen ist nicht möglich, allerdings kannst Du das ganze mit PHP wie folgt umgehen:

Wenn Du auf einen Link klickst wird gleiche Seite mit einer GET/POST Variablen (je nach dem ob Du möchtest, dass der Benutzer sieht, dass er auf einer unterschiedlichen Seite ist) erneut geöffnet. In dieser Variablen wird vermerkt, welcher Text in der Mitte angezeigt werden soll.
Je nach dem wie Deine Variable gesetzt ist, lädst Du dann einen unterschiedlichen Text in den mittleren Div Container.

Das ganze könnte dann im Code ca so aussehen:

[code]
<?
$todo;
$ausgabe;

function setContent() {
switch ($todo) {
case LINK1:
$ausgabe = "TEXT DER BEI LINK1 ANGEZEIGT WERDEN SOLL";
break;
case LINK2:
$ausgabe = "TEXT DER BEI LINK2 ANGEZEIGT WERDEN SOLL";
break;
default:
$ausgabe = "TEXT DER BEI KEINEM GEKLICKTEM LINK ANGEZEIGT WERDEN SOLL";
break;
}
return $ausgabe;
}

if(isset($_GET['VARIABLENNAME']) $todo = $_GET['VARIABLENNAME'];

$ausgabe = setContent();
?>

<!-- Im Div Container dann an der entsprechenden Postition im Script: -->

<div>
<?=$ausgabe?>
</div>
[/code]

Der Code ist jetzt von mir nicht getestet, sondern aus dem Stehgreif herunterprogrammiert. Er sollte aber so in der Art funktionieren.
Um die Seiten dann aufzurufen kannst Du dann z.B. einfach auf die "XYZ.php?todo=LINK1" Datei linken.

tele 28.08.2009 13:58

AW: [php] Links vom Menü in Container öffnen
 
andere Möglichkeit wäre noch, das Menü in eine Datei auszulagern, die von der eigentlichen Inhaltsseite dann immer includiert wird.

mondrian 03.09.2009 17:39

AW: [php] Links vom Menü in Container öffnen
 
Als einfache serverseitige Alternative zur Einbindung per PHP ginge noch SSI.

[quote=tele;637058]andere Möglichkeit wäre noch, das Menü in eine Datei auszulagern, die von der eigentlichen Inhaltsseite dann immer includiert wird.[/quote]

Dann wären die oft thematisierten Nachteile von Frames (z.B. Probleme mit der Browserhistory/-verlauf) vermieden, wenn das menu ausgelagert wäre.

Für die Version mit den wechselndem Inhalt, wie auch für die hier erwähnte Variante, sollte doch einfach ein Iframe-Element reichen.

[URL="http://de.selfhtml.org/html/frames/eingebettete.htm"]SELFHTML: HTML/XHTML / Frames / Eingebettete Frames[/URL]

Die Adressierung -falls der neue Inhalt im iframe auftauchen soll- müßte, wenn ich es recht erinnere, über target beim Link oder ggf. per <base target=.. erfolgen können.

juth 07.09.2009 12:24

AW: [php] Links vom Menü in Container öffnen
 
Wenn's ein Container ist, dann prüf doch mithilfe einer $_GET-Variabel den Inhalt des Links und lass den im Container ausgeben

Kankomi 09.10.2009 13:18

AW: [php] Links vom Menü in Container öffnen
 
So ich geb mein Senf auch mal dazu un d klau mir einfach mal das Beispiel von EoN:
[php]
<?
//array wo die Seiten mit dem Content drin sind
$files[0] = "/linkcontainer/zur/html/bzw/php/dateien.php";
$files[1] = "/linkcontainer/zur/html/bzw/php/dateien.html";
//...

$ausgabe;
$link;

function setContent() {

ob_start(); //echo/includes nicht ausgeben sondern in einen buffer laden
include $files[$link];
$ausgabe = ob_get_contents(); //buffer in variable speichern
ob_end_clean(); //buffer loeschen

return $ausgabe;
}

if (isset($_GET['linkID']))
{
$link = $_GET['linkID'];
$ausgabe = setContent();
}
else
{
$link = 0; //0 koennte die index Seite sein.
$ausgabe = setContent();
}

?>

<!-- Im Div Container dann an der entsprechenden Postition im Script: -->

<div>
<?=$ausgabe?>
</div>
[/php]damit hast du den Content ausgelagert. Die links sollten dann so aussehen
<a href="/index.php?linkID=0">link zur seite 1</a>

Ist nicht getestet sollte aber funktionieren.

UnoOC 09.10.2009 13:44

AW: [php] Links vom Menü in Container öffnen
 
Danke für die - wenn auch zu späte - Hilfe. zwischenzeitlich hat sich jemand Professionelles meinem Problem angenommen und es flugs und sehr preiswert (2 Flaschen Wein und die Telefonnummer einer Bekannten) gelöst.


UnoOC

juth 13.10.2009 10:36

AW: [php] Links vom Menü in Container öffnen
 
[quote=UnoOC;643234]Danke für die - wenn auch zu späte - Hilfe. zwischenzeitlich hat sich jemand Professionelles meinem Problem angenommen und es flugs und sehr preiswert (2 Flaschen Wein und die Telefonnummer einer Bekannten) gelöst.


UnoOC[/quote]

Schaut sie denn gut aus?

UnoOC 13.10.2009 15:52

AW: [php] Links vom Menü in Container öffnen
 
Sind ne ganz normale dunkelgrüne Rotweinflaschen. Keine Ahnung ob so ne Flasche gut ausschaut - kommt halt auf den Betrachter an


UnoOC

Kankomi 13.10.2009 22:08

AW: [php] Links vom Menü in Container öffnen
 
[quote=UnoOC;643787]Sind ne ganz normale dunkelgrüne Rotweinflaschen. Keine Ahnung ob so ne Flasche gut ausschaut - kommt halt auf den Betrachter an


UnoOC[/quote]

Nicht die Flasche, die Bekannte.

UnoOC 14.10.2009 15:45

AW: [php] Links vom Menü in Container öffnen
 
Auch das liegt im Auge des Betrachters bzw. am jeweiligen Alkoholspiegel ...

Ist schon net übel das Mädel


UnoOC

juth 15.10.2009 12:47

AW: [php] Links vom Menü in Container öffnen
 
[quote=UnoOC;643916]Auch das liegt im Auge des Betrachters bzw. am jeweiligen Alkoholspiegel ...

Ist schon net übel das Mädel


UnoOC[/quote]

:pics:

-closed-


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:52 Uhr.

Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2026, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.