
Geschrieben von
rizzn2k
am 10.03.2009 um 17:34 Uhr.
Beiträge: 19 /
#1885
Kontakt:
Mailen
|
WWW
Überflüssiges Reloaden der Page beim Seitenwechsel per Klick auf einen Link lässt sich hiermit leicht umgehen.
Mit dieser Kombination tauschen wir den Inhalt unseres Contents (DIV Container) ganz einfach ohne Reload der Seite aus.
Betroffene Files:
- index.php (Hauptseite)
- functions.js (Javascript Request)
- include.php (Einbinden der Unterseiten)
STEP 1: Anlegen der functions.js
Wichtig wäre hier noch zu erwähnen, dass auch JavaScripte auf den Unterseiten welche später eingebunden werden, mitgeladen werden. Über
var searchElement legen wir fest welcher DIV-Container später vom Request betroffen ist.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
function requestPage(inc) {
var request = false;
try {
request = new XMLHttpRequest();
} catch (e) {
try{
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert("Error loading file.");
return false;
}
}
}
request.onreadystatechange = function() {
if(request.readyState == 4) {
if(request.status == 200) {
var searchElement = document.getElementById("content");
searchElement.innerHTML=request.responseText;
var scripts = searchElement.getElementsByTagName("script");
for (var i=0;i<scripts.length;i++) {
eval(scripts[i].innerHTML);
}
}
}
}
request.open("GET", "include.php?inc=" + inc, true);
request.send(null);
}
STEP 2: Anlegen der include.php
Die $inc Variable wird vom JavaScript and unsere Include File übergeben.
<?php
- $inc = $_GET["inc"];
-
- if (!file_exists($inc.".php"))
- {
- echo "Error loading file.";
- }
- else {
- include($inc.".php");
- }
- ?>
STEP 3: Anlegen der index.php
Nun legen wir die Startseite an. Falls diese schon vorhanden ist wird folgendes hinzugefügt. Wichtig ist die richtige Bezeichnung des Containers durch das ID-Attribut, welches zuvor in unserer functions.js festgelegt wurde.
<div id="content">
include("home.php");
</div>
Beim ersten Seitenaufruf wird hier optional eine home.php geladen.
STEP 4: Einbinden der functions.js in unsere Hauptseite
<script language="javascript" type="text/javascript" src="functions.js"></script>
STEP 5: Seitenwechsel durch requestPage über einen Hyperlink
Nun führen wir den eigentlichen Request (via Hyperlink) durch und tauschen somit den Inhalt unseres DIV-Containers. Geladen wird in diesem Fall die
newsletter.php und unser Content-DIV wechselt nun den Inhalt.
<a href="newsletter.php" onclick="javascript:requestPage('newsletter'); return false;">