Hallo,
ich bin noch absoluter PHP-Neuling, aber wollte nun einmal eine kleine Bildergalerie programmieren. Dazu hab ich einfach ein Feld Registry[][], in dem die Bilddaten zu jedem einzelnen Bild liegen (z.B. Pfad und Name) und eine Funktion setImage(), die aufgerufen wird, wenn ein neues Bild angezeigt werden soll.
Ich hab dann im Wesentlichen drei Buttons, einer für vor, einer für zurück und einer zum Beenden. Die Abfrage geschieht mit $_Post[] und dort ist derzeit mein Problem. Wenn der Button „vor“ aufgerufen wird, so soll $bild (Variable, die das aktuell angezeigt Bild repräsentiert) inkrementiert werden und die Methode erneut aufgerufen werden. Allerdings scheint der Button dann immer den Status „gedrückt“ zu haben, denn das Programm ist dann wie in einer Endlosschleife und zeigt die Bilder hundert mal an, so dass ich nur noch das Fenster schließen kann. Wie kann man das ändern? Muss ich den Button irgendwie manuell zurücksetzen?
Hier ist mal der wesentliche Teil des Codes, wobei das Problem eigentlich nur im unteren Bereich ist, dort wo der Button ‚vor‘ verarbeitet wird.
function setImage( $bild, $registry) {
/* Darstellen des Bildes */
$bildpfad = $registry[$bild][0] . ‚.jpg‘;
echo " ";
echo ’ ';
echo $registry[$bild][2] . ’ ';
echo ’
';
echo ’ ’ . $registry[$bild][0];
echo ’
';
echo ’ ’ . $registry[$bild][1];
echo ’
';
echo ’ ’ . $registry[$bild][3];
echo ’
';
echo’ ';
echo ’ ';
echo ’ ';
echo ’ ‚;
echo‘ ';
if( $_Post[‚vor‘]) {
$bild++; // Ein Bild weiter
setImage( $bild); // Rekursiver Neuaufruf
// Problem: Wird nach Button-Click unendlich oft aufgerufen
}
}
Vielleicht gibt es auch ganz andere Möglichkeiten, wie man eine solche Bildgalerie prinzipiell aufbauen sollte, aber mir ist nichts anderes eingefallen als die obige Vorgehensweise.
M.f.G.
Infostudent.