oli.s.
Threadersteller
Dabei seit: 08.01.2007
Ort: Lehre
Alter: 36
Geschlecht:
|
Verfasst Di 18.03.2008 18:55
Titel Bilder direkt per HttpRequest einladen? |
|
|
Hallo alle zusammen!
da mein gesuche nichts ergeben hat versuche ich hier mal mein Glück.
Also:
Ich bin dabei mir eine Bildergalery zu programmieren. Die Bilder werden aus einem Ordner mit PHP in ein Array geschrieben.
Und nun soll jedes Bild per HttpRequest eingeladen werden, damit nicht die ganze Seite neu geladen werden muss und sobald ein Bild geladen ist, es angeschaut werden kann. Ich habe schon stark die Vermutung das es nicht so funktioniert wie ich mir das denke.
Nun liegt mein Wissensschwerpunkt aber auf PHP und nicht Ajax. Ich würde jetzt gern wissen ob es
1. Überhaupt möglich ist, per Http das Bild direkt laden zu lassen also: zb. open('GET','bild.jpg','true');
2. Wenn ja, wie es einbinde? Einfach um responseText die <img> Elemente?
3. Wie sähe eine Möglichkeit aus die meine Absichten auch erfüllt, falls meine nicht funktioniert?
Hier mein Code:
Code: | <?php
session_start();
require_once("mysql_dates.php");
//Ausgewählte Kategorie abfragen
if(isset($_SESSION['gal_kat'])) {
echo "<span>Bitte wählen Sie erst eine Kategorie aus</span>";
//include des Menüscripts
#########################
} else {
$kategorie = $_SESSION['gal_kat'];
}
//Testweise Variablen setzen
$kategorie = "test1";
$page = 1;
//Verzeichnis zu den Bildern der Kategorie
$dir = "fotos/".$kategorie."/";
$dir_thumb = "fotos/".$kategorie."/thumbnails/";
##############################################
//Array aller Bilddateien des Kategorieordners
##############################################
function getFileNames($dir) {
//Besteht das Verzeichnis überhaupt?
if(is_dir($dir)) {
$handle = opendir($dir);
//Startpunkt für Schleife
$i = 1;
}
while(false !== ($arrayFiles = readdir($dir))) {
if($arrayFiles !== "." || $arrayFiles !== "..") {
if(stristr($arrayFiles, "jpg") || stristr($arrayFiles, "jpeg") || stristr($arrayFiles, "gif") || stristr($arrayFiles, "png")) {
$pic[$i] = $arrayFiles;
$i++;
}
}
}
closedir($handle);
sort($pic);
return $pic;
}
while($pic) { echo "picture: ".$pic; }
##############################################
##############################################
//Ausgabe des Layouts und der Thumbnails
//Anzahl der Bilder pro Seite festlegen (PicsPerPage)
$ppp = 30;
//Anzahl der Bilder pro Zeile festlegen (PicsPerRow)
$ppr = 5;
//Bildernamen aus Array pic lesen in Rahmen der aktuellen Seite
$page = $_SESSION['page'];
if(!isset($page)) { $page = 1; }
//Errechne Start und Endbild
$start = ($page*$ppp)-$ppp;
if($page !== 1) { $start-1; }
$end = $page*$ppp;
for($i=$start;$i=$end;$i++) {
echo"<div class=\"picdiv\">";
//Reihen erstellen
//Diese for-Schleife funktioniert so nicht
for($ii=1;$ii=$ppr;$ii++){
echo"<div class=\"picrow\">";
//Bilder per Ajax laden
echo"
<script type=\"text/javascript\" language=\"JavaScript\">
xmlRequest = null;
if(window.XMLHttpRequest) {
xmlRequest = XMLHttpRequest();
} else if(window.ActiveXObject) {
try{
xmlRequest = ActiveXObject('Msxml2.XMLHTTP');
} catch(e1)
{
try {
xmlRequest = ActiveXObject('Microsoft.XMLHTTP');
} catch(e2)
{}
}
}
function schreibeText() {
if(xmlRequest.readyState == 4 && xmlRequest.status == 200) {
document.writeIn('xmlRequest.responseText');
}
}
if(xmlRequest !== null) {
xmlRequest.open('GET','$dir_thumb.$pic[$i]',true);
xmlRequest.onreadystatechange = schreibeText();
xmlRequest.send(null);
}
}
</script>
";
echo"</div>";
}
echo"</div>";
}
?>
|
Danke schonmal!
|
|