Przeglądarka zdjęć z przyciskami poprzednie/następne

0

Witam,

Usiłuję zrobić prostą przeglądarkę zdjęć w PHP, ale nie mogę sobie poradzić.
Do rzeczy:

  • zdjęcia będą uploadowane do konkretnego katalogu na FTP
  • strona ma samodzielnie wczytywać pierwsze ze zdjęć z katalogu
  • przyciski Poprzednie/Następne mają przełączać pomiędzy kolejnymi zdjęciami z FTP

W jednym DIVie mam obszar na zdjęcie, a innych DIVach znajdują się IMG jako przyciski Następne/Poprzednie i tutaj pojawia się problem. Nie mam pomysłu jak skojarzyć te przyciski z innych DIVów, z przeglądarką.

Prosiłbym o jakieś wskazówki.

Pozdrawiam

0

Wg mnie mógłbyś napisać skrypt na wrzucanie pliku do folderu i rekord do bazy danych, potem wyświetlasz ost rekord (odpowiada ost zdjęciu w folderze).
Dajesz sobie zmienna $_GET['fotoid']; i jeśli jej nie ma to wyświetlasz ost rekord, pod przyciski nast/poprz dajesz zmienne $_GET['fotoid']; odpowiednio zwiększoną i zmniejszoną o 1.

Chyba to jakoś nie za wile wytłumaczyłem

0

Nie do końca rozumiem Twój problem, a tym bardziej zagadkowe jest stwierdzenie "skojarzenie przycisków z innych div'ów z przeglądarką"... Noo, przeglądarka wyświetla te przyciski, więc sa raczej skojarzone :)

Masz kilka metod rozwiązania tego problemu (zakładając, że problemem jest jak mają działać przyciski).

  • Wykorzystując JavaScript.
    • Ładując linki do wszystkich zdjęć na stronę. Trzymasz je w jakiejś liście niewidocznej, klikając przycisk Nastepny po prostu Javascriptem pobierasz watość kolejnego elementu listy i podmieniasz atrybut 'src' tagu 'img'.
    • Wersja "bardziej pro" - wykorzystujesz Ajax. Klikając przycisk wysyłasz żądanie, w odpowiedzi którego dostaniesz adres kolejnego/poprzedniego obrazka i JSem podmieniasz src tak jak wyżej.
  • Nie wykorzystując JavaScriptu - przyciski są linkami do stron które wyświetlą odpowiednie zdjęcie.

Natomiast jeśli problemem jest jak ogarnąć, które zdjęcie jest kolejne, a które poprzednie - to albo tak jak kolega wyżej napisał, zapisujesz je do bazy jakkolwiek (chyba lepiej same nazwy plików/ścieżki dostępu niż całe BLOBy, tak gdzieś kiedyś czytałem;) ) i wyświetlasz z bazy.
Ewentualnie możesz wykorzystując funkcje PHP zapisać zawartość folderu ze zdjęciami do pliku i wyświetlać zdjęcia z poszczególnych linii pliku...
W sumie rozwiązań jest wiele :)

Ja osobiście wybrałbym AJAX + baza danych.

0

Dzięki Panowie, trochę powalczyłem, ale niestety nic mi z tego nie wychodzi. Żeby było łatwiej, wklejam kod, jaki spłodziłem:

<?php
class pict {

private $dir = './zdjeciaLOGO';

private function getPictures() {

$fdir = opendir($this->dir);

while(false != ($file=readdir($fdir))) {
if(($file != '.') || ($file != '..')) {

$tablica[] = $file;

}
}

}

public function __construct() {
$this->getPictures();
}
}
$pict = new pict;
?>
<script>
function WyswietlP()
{
 document.write('<?php WyswietlP(); ?>');
 }
</script>
<?php
function WyswietlP()
{
echo "<img src=\"http://yyy.pl/zdjeciaLOGO/$tablica[a]\" style=\"border:none;\">";  
$a++;
}
?>

W buttonie mam:

onclick="WyswietlP()"
0

zdarzenie onclick jest funkcją w javascript a ty napisałeś funkcję w php, zupełnie nie tak..

0

Nie zgodze się z tym co napisał kolega powyżej. Trochę co prawda chaotyczne jest to, że masz funkcje w PHP i w JS tak samo nazwaną, co wprowadza w błąd (przynajmniej w tym przypadku), ale z technicznego punktu widzenia jest jak najbardziej ok.

Zacznijmy od literówki:

echo "<img src=\"http://yyy.pl/zdjeciaLOGO/$tablica[a]\" style=\"border:none;\">"; 

Indeksem nie powinno być a, tylko $a, a więc $tablica[$a].

Sprawa druga, wazniejsza - metoda getPictures() nie daje żadnego wyniku. Tworzysz w niej lokalną zmienną $tablica, nie zwracasz jej nigdzie, zmienną tracisz na koniec działania metody getPictures().

Albo utwórz polę $tablica w klasie pict, i odwołuj się do niego $this->tablica, albo na koniec medoty getPictures zwróć tablicę i wywołując metodę przypisz tę tablicę do czegoś.

0

Super, dzięki, działa po wprowadzeniu poprawek :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0