Hallo.
Ich möchte gern eine
Präsentation über AJAX erstellen, warum? Die Aufgabe ist eine
Präsentation über einen Bereich meines Studiums zu halten. Da ich das Thema AJAX gewählt habe, ist mir der Gedanke gekommen, die
Präsentation mithilfe von AJAX zu realisieren.
Soweit klappt das auch ganz gut.
Habe eine Startseite, eine XML-Datei für den Inhalt und ein PHP-Script zum Auslesen des Inhalts.
das PHP-Script
PHP-Code:
<?php
if (!$daten)
{
$daten = file_get_contents("./content/content.xml");
$daten = explode("PAGE", $daten);
}
ereg("<TITLE>(.*)</TITLE>", $daten[$_POST["index"]], $title);
ereg("<CONTENT>(.*)</CONTENT>", $daten[$_POST["index"]], $content);
echo $title[1]."<br />".$content[1];
?>
die HTML-Seite inkl. Javascript
Code:
<html>
<head>
<title>AJAX - the www revolution?</title>
<link rel="stylesheet" type="text/css" href="index.css" />
<script type="text/javascript">
<!--
var index = 0;
var req = false;
req = new XMLHttpRequest();
function getData(dir)
{
if (req)
{
if(dir == "u")
{
index = index + 1;
}
else if(dir == "d" && index > 1)
{
index = index - 1;
}
var dataSrc = "getData.php";
req.open("POST", dataSrc, true);
req.onreadystatechange = function()
{
if (req.readyState == 4 && req.status == 200)
{
var content = req.responseText;
document.getElementById("div_content").innerHTML = content;
document.getElementById("pages").innerHTML = index;
}
}
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send("index=" + index);
}
}
-->
</script>
</head>
<body><div style="top:0px;left:0px;width:1024px;height:768px;background:transparent;border:1px solid black">
<div id="div_present" class="present">
<div id="div_content" class="content" style="background:transparent"></div>
</div>
<div id="div_menu" class="menu">
<table>
<tr>
<td class="menu"><img src="./pic/icon_last.png" onclick="getData('d')" /></td>
<td class="menu"><span id="pages"></span></td>
<td class="menu"><img src="./pic/icon_next.png" onclick="getData('u')" /></td>
</tr>
</table>
</div>
</div></body>
</html>
die XML-Datei ist wie folgt aufgebaut:
Code:
<ROOT>
<PAGE>
<TITLE>Titel</TITLE>
<CONTENT>Inhalt</CONTENT>
</PAGE>
<PAGE>
.
.
</PAGE>
</ROOT>
Jetzt habe ich folgendes Problem:
Wenn ich die Seiten durchklicke (die JS-Variable index zählt die Zahl der Http-Request, welche ja gleich der Anzahl der Seiten ist), dann bekomme ich bei Seite 1 den Titel und Inhalt der ersten Page aus der XML-Datei. Beim zweiten Klick nichts und beim Dritten den Titel und Inhalt der zweiten Page usw.
Kann mir jemand erklären, warum das so ist? Eigentlich müßte er doch beim ersten Request den ersten Page-Block auswerten, beim zweiten den zweiten usw.
Vielen Dank