Hallo Leute,
ich schreibe mir zum Lernen ein kleines Galeriescript, stecke jetzt aber bei der Bearbeitung von AJAX Anfragen fest.
Das Problem besteht darin, dass - logischerweise - jeweils die komplette Seite (inkl. HTML Grundgerüst) nochmal in die bereits bestehende Seite geladen wird.
Meine Frage ist: macht es überhaupt Sinn auf der Basis eine Lösung zu suchen, oder steckt der Fehler bereits im Aufbau meiner kompletten "Architektur"?
Mein Code (gekürzt):
index.php
bootstrap.php
Gallery.php
templates/showImages.php
Vielen Dank für das Lesen
Grüsse JohnT
ich schreibe mir zum Lernen ein kleines Galeriescript, stecke jetzt aber bei der Bearbeitung von AJAX Anfragen fest.
Das Problem besteht darin, dass - logischerweise - jeweils die komplette Seite (inkl. HTML Grundgerüst) nochmal in die bereits bestehende Seite geladen wird.
Meine Frage ist: macht es überhaupt Sinn auf der Basis eine Lösung zu suchen, oder steckt der Fehler bereits im Aufbau meiner kompletten "Architektur"?
Mein Code (gekürzt):
index.php
PHP-Code:
<?php require_once 'bootstrap.php'; ?>
<!doctype html>
<html lang="de">
<head>
<script>
$(document).ready(function() {
$('#galleries a').click(function(e){
var url = $(this).attr('href');
$('#gallery').load(url);
e.preventDefault();
});
});
</script>
</head>
<body>
<div id="wrapper">
<?php $Gallery->listGalleries(); ?>
<hr />
<?php $Gallery->showImages($galleryName); ?>
</div>
</body>
</html>
PHP-Code:
if (!empty($_GET[gallery])) {
$galleryName = $_GET[gallery];
}
require_once '/Gallery.php';
$Gallery = new Gallery($galleryRoot);
Gallery.php
PHP-Code:
class Gallery
{
protected $galleryRoot;
protected $filesArray = array();
protected $dh;
public function __construct($galleryRoot)
{
$this->galleryRoot = $galleryRoot;
}
public function showImages($galleryName)
{
$galleryFolder = $this->galleryRoot . $galleryName;
$this->imagesArray = $this->readDir($galleryFolder);
include 'templates/showImages.php';
}
protected function readDir($dir)
{
unset($this->filesArray);
if (is_dir($dir)) {
$this->dh = opendir($dir);
while (($file = readdir($this->dh)) !== false) {
if (($file != ".") && ($file != "..")) {
$this->filesArray[] = $file;
}
}
return $this->filesArray;
}
}
public function __destruct()
{
closedir($this->dh);
}
}
templates/showImages.php
PHP-Code:
<div id="gallery">
<h1>Gallery: </h1>
<ul>
<?php foreach ($this->imagesArray as $file): ?>
<li><a href="<?php echo $galleryFolder . "/" . $file; ?>">
<img src="<?php echo $galleryFolder . "/" . $file; ?>" height="100" width="100" />
</a></li>
<?php endforeach; ?>
</ul>
</div>
Vielen Dank für das Lesen

Grüsse JohnT
Kommentar