[GastForen Programmierung/Entwicklung PHP und MySQL PHP - per include Inhalte austauschen?! - Wie geht das?

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

PHP - per include Inhalte austauschen?! - Wie geht das?

mirco_osx
Beiträge gesamt: 145

9. Jul 2007, 11:15
Beitrag # 1 von 10
Bewertung:
(6215 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo,
ich habe eine index.php in der ich mehrere seiten per include eingebunden habe.
Nun möchte ich gerne über das menu nur den inhalt austauschen in dem ich die "hallo.php" eingbunden habe. sprich die "hallo.php" austauschen gegen z.b. "kontakt.php".

derzeit benutze ich folgende linkfunktion für die buttons (die neuen seiten entsprechen vom aufbau her der "index.php" aber es ist irgendwie nervig das immer ALLES neu aufgebaut wird)
"<a href="meineseite.php" target="_self">"

hier mal ein auszug aus der index php:
...
</head>

<body background="gfx/basis/back_global.jpg" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="930" height="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="center">

<table width="930" border="0" align="center" cellpadding="0" cellspacing="0" background="pics/back_schatten.jpg">
<tr valign="top">
<td style="padding-top:13px; padding-bottom:13px"><?php include ("includes/-head.php"); ?>

<table width="900" height="457" border="0" align="center" cellpadding="0" cellspacing="0" background="pics/universal_bg.jpg">
<tr>
<td valign="top">

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="189" valign="top" class="abs_nav"><?php include ("includes/-nav_home.php"); ?></td>
<td width="100%" valign="top" class="abs_inhalt"><?php include ("hallo.php"); ?></td>
</tr>
</table>

</td>
</tr>
</table>

</td>
</tr>
</table>

</td>
</tr>
</table>

</body>
</html>


vieleicht weiß ja jemand wie das funktioniert :)

Danke!

(Dieser Beitrag wurde von mirco_osx am 9. Jul 2007, 11:32 geändert)
X

hat keiner eine idee? :)

mirco_osx
Beiträge gesamt: 145

9. Jul 2007, 12:57
Beitrag # 2 von 10
Beitrag ID: #301552
Bewertung:
(6195 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ich dachte das man das vieleicht so ähnlich behandeln kann wie ein frameset.

dort kann man doch auch bestimmen das z.b. der bereich BODY ausgewechselt wird :)

lg, mirco


als Antwort auf: [#301530]

hat keiner eine idee? :)

flobaer
Beiträge gesamt: 317

9. Jul 2007, 13:19
Beitrag # 3 von 10
Beitrag ID: #301559
Bewertung:
(6185 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mirco,

das geht natürlich nicht! PHP wird serverseitig zusammengebaut. Was du haben möchtest ist aber, dass eine Seite im Browser angezeigt wird und nur ein bestimmter Bereich ausgetauscht wird. Habe ich das richtig verstanden? Dafür müsste der Browser die Seite zusammensetzen. Und dafür gibt es Javascript.
Ich selbst baue meine Seiten immer so, dass ich per GET eine Variable mitgebe, die dann festlegt was includet wird. Dabei wird natürlich immer die gesamte Seite geladen, aber ich brauche dafür kein JS.

Viele Grüße,
Florian


als Antwort auf: [#301552]

hat keiner eine idee? :)

mirco_osx
Beiträge gesamt: 145

9. Jul 2007, 14:03
Beitrag # 4 von 10
Beitrag ID: #301575
Bewertung:
(6177 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo florian,

du hast das richtig verstanden.
wie lässt sich das ganze mit der GET funtion umsetzen?

lg, mirco


als Antwort auf: [#301559]

hat keiner eine idee? :)

flobaer
Beiträge gesamt: 317

9. Jul 2007, 14:10
Beitrag # 5 von 10
Beitrag ID: #301578
Bewertung:
(6174 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Du übergibst den Parameter einfach über die URL also in etwa so: index.php?action=tuwas

Im Script fragst du dann die Variable $_GET['action'] ab und steuerst dadurch deinen inlclude:
Code
if(isset($_GET['action']) && $_GET['action']=="tuwas") include ("include_tuwas.php"); 
else include("standard.php");

Die Variable und die Werte kannst du natürlich benennen wie du willst.


als Antwort auf: [#301575]

hat keiner eine idee? :)

mirco_osx
Beiträge gesamt: 145

9. Jul 2007, 16:27
Beitrag # 6 von 10
Beitrag ID: #301620
Bewertung:
(6157 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
D A N K E !!!
es funktioniert soweit ganz gut bis auf einen kleinen fehler (meinerseits). die seiten werden jetzt zwar geladen aber immer über der ersten start.php weil die else-funktion im moment, logischer weise, noch angepasst werden sollte.
ich weiß aber nicht wie ich dein script anpassen bzw. verändern muß damit die else funktion richtig funktioniert. (es ist bestimmt total simpel aber ich komme beim besten willen nicht darauf)

hier mal wieder ein auszug aus der "index.php":

...
<td width="100%" valign="top" class="abs_inhalt"><?php
if(isset($_GET['action']) && $_GET['action']=="start") include ("start.php");
if(isset($_GET['action']) && $_GET['action']=="buerger") include ("mittelpunkt.php");
if(isset($_GET['action']) && $_GET['action']=="vonhier") include ("einer_von_hier.php");
if(isset($_GET['action']) && $_GET['action']=="schule") include ("start2.php");
if(isset($_GET['action']) && $_GET['action']=="schranken") include ("schranken.php");
if(isset($_GET['action']) && $_GET['action']=="kontakte") include ("kontakte.php");
if(isset($_GET['action']) && $_GET['action']=="tourismus") include ("tourismus.php");
if(isset($_GET['action']) && $_GET['action']=="jaderberg") include ("jaderberg.php");
if(isset($_GET['action']) && $_GET['action']=="landwirtschaft") include ("landwirtschaft.php");
if(isset($_GET['action']) && $_GET['action']=="biographie") include ("biografisch.php");
if(isset($_GET['action']) && $_GET['action']=="presse") include ("presse.php");
if(isset($_GET['action']) && $_GET['action']=="links") include ("links.php");
if(isset($_GET['action']) && $_GET['action']=="kontakt") include ("kontakt.php");
if(isset($_GET['action']) && $_GET['action']=="impressum") include ("impressum.php");
else include ("start.php");
?></td>

währe echt toll wenn du da nochmal eine idee hast :)

DANKE!


als Antwort auf: [#301578]

hat keiner eine idee? :)

Intermedia
Beiträge gesamt: 1287

9. Jul 2007, 16:36
Beitrag # 7 von 10
Beitrag ID: #301627
Bewertung:
(6150 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich hätte da einen anderen Vorschlag:

Code
switch ($_GET[action]){ 

case "start" : include ("start.php"); break;
case "buerger" : include("mittelpunkt.php"); break;

default: include ("start.php");
}


In deiner Variante sollte es auch gehen:



Code
 
if(isset($_GET['action']) && $_GET['action']=="start") include ("start.php");
if(isset($_GET['action']) && $_GET['action']=="buerger") include ("mittelpunkt.php");
if(isset($_GET['action']) && $_GET['action']=="vonhier") include ("einer_von_hier.php");
if(isset($_GET['action']) && $_GET['action']=="schule") include ("start2.php");
if(isset($_GET['action']) && $_GET['action']=="schranken") include ("schranken.php");
if(isset($_GET['action']) && $_GET['action']=="kontakte") include ("kontakte.php");
if(isset($_GET['action']) && $_GET['action']=="tourismus") include ("tourismus.php");
if(isset($_GET['action']) && $_GET['action']=="jaderberg") include ("jaderberg.php");
if(isset($_GET['action']) && $_GET['action']=="landwirtschaft") include ("landwirtschaft.php");
if(isset($_GET['action']) && $_GET['action']=="biographie") include ("biografisch.php");
if(isset($_GET['action']) && $_GET['action']=="presse") include ("presse.php");
if(isset($_GET['action']) && $_GET['action']=="links") include ("links.php");
if(isset($_GET['action']) && $_GET['action']=="kontakt") include ("kontakt.php");
if(isset($_GET['action']) && $_GET['action']=="impressum") include ("impressum.php");


if(!isset($_GET['action'])) include ("start.php");


So könnte es auch funktionieren.

Gruß Sven


als Antwort auf: [#301620]

hat keiner eine idee? :)

flobaer
Beiträge gesamt: 317

9. Jul 2007, 16:39
Beitrag # 8 von 10
Beitrag ID: #301630
Bewertung:
(6148 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich würde es erstmal folgendemaßen machen:
Code
if(isset($_GET['action'] && $_GET['action']!="") $action=$_GET['action']; 
else $action="start";

Damit hast du eine lokale Variable, die den Wert der GET-Variable hat (sofern diese gesetzt und nicht leer ist) oder ansonsten auf den Standartwert gesetzt wird. Das spart die ständigen isset-Abfragen.
Dann machst du folgendes:
Code
if($action=="start") include ("start.php");  
elseif($action=="buerger") include ("mittelpunkt.php");
elseif ($action=="vonhier") include ("einer_von_hier.php");
...
else include("fehler.php");

Wichtig ist das elseif. Die letzte Zeile greift nur dann, wenn jemand versucht einen Wert zu übergeben, den du nicht kennst. Du kannst dann entweder eine Fehlerseite ausgeben und drohend den Zeigefinger heben, oder du setzt da auch wieder die start.php ein.

Ich hoffe das war soweit verständlich. Damit solltest du dein Ziel jetzt eigentlich erreichen.

Viele Grüße,
Florian


als Antwort auf: [#301620]

hat keiner eine idee? :)

bröp
Beiträge gesamt: 160

9. Jul 2007, 16:40
Beitrag # 9 von 10
Beitrag ID: #301632
Bewertung:
(6148 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Du könntest auch anstelle den weiteren IFs ein ELSEIF einfügen vgl. http://ch2.php.net/...tructures.elseif.php.

Gruss
Bruno


als Antwort auf: [#301620]

hat keiner eine idee? :)

mirco_osx
Beiträge gesamt: 145

9. Jul 2007, 16:43
Beitrag # 10 von 10
Beitrag ID: #301633
Bewertung:
(6146 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
SUPER ... es funktioniert alles bestens!

!!!!!!!!!!!!!!!vielen dank nochmal für die hilfe, an alle!!!!!!!!!!!!!

lg, mirco


als Antwort auf: [#301627]
X