Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcja wyświetlania foto.
Forum PHP.pl > Forum > Przedszkole
Ozarys
Mam taki skrypt i działa ale ma dwa błędy nie wyświetla ostatniego zdjęcia tak jakby go nie było i nie chce pokazywać miniatur(czasami jakieś się pokazują albo są wszystkie takie same)nie wiem co dalej robić proszę o pomoc.
Tu jest link skryptu
  1. <?
  2. $dir = "fotos/ ";  # katalog zdjec foto /
  3. $ext = ".jpg|.gif|.png"; # rozszerzenia zdjęć/
  4. $tytul = "Razem zdjęć:"; # Ilość zdjęć w katalogu $dir/
  5. /*-----------------------------------------------------------------------*/
  6.  
  7.  
  8. $puk=opendir($dir);
  9. while ($fichero = readdir($puk)) {
  10. if (is_file($dir.$fichero) && eregi($ext,$dir.$fichero)) {
  11. $fotos["nombre"][$imagen] = $fichero;
  12. $fotos["modi"][$imagen] = filemtime($dir.$fichero);
  13. $imagen++;
  14. }
  15. }
  16. closedir($puk);
  17. /*-------------------------------------------------------------------------*/
  18.  
  19. function miniatury() {
  20. global $dir,$tytul,$imagen,$bytes,$fotos;
  21. $kb = number_format($bytes/1024);
  22. echo "<hr color=#8BBCF7><br>$tytul$imagen<br><div id="nazwa"> </div>
  23. ";array_multisort($fotos["modi"],SORT_DESC,$fotos["nombre"]);
  24. reset($fotos);
  25. for ($i=0;$i<$imagen;$i++) {
  26. echo "<a href="java script:click('".$fotos["nombre"][$i]."')">
  27. <img height=50 src=".$dir.$fotos["nombre"][$i]." border=1></a>  ";
  28. }
  29. }
  30. ?>
  31. <center><?
  32. ?>
  33. <script>
  34. function click(clicks) { document.images['zdjecie'].src="<?=$dir?>" + clicks; var nombre = clicks.substring(0,clicks.length-4); document.getElementById("nazwa").innerHTML = "Nazwa pliku:" + nombre.toUpperCase(); }
  35. </script>
  36. <tr>
  37. <img src=zdjecie.gif name="zdjecie" border=0>
  38. <?miniatury()?></center>[code][/code][code]
ARJ
jeżeli chodzi o miniaturki to popraw kod html. twój kod tak jest interpretowany przez firebug:
  1. <img height="50" border="1" grzesiek2.jpg="" 2007-01-01="" src="katalogwww/peugeot405"/>

jeżeli chodzi o ostatnie zdjęcie to wyświetla o 1 miejsce za dużo czy w ostatnim nie ma danych do wyświetlenia?
Ozarys
Cytat(ARJ @ 1.01.2007, 20:24:03 ) *
jeżeli chodzi o ostatnie zdjęcie to wyświetla o 1 miejsce za dużo czy w ostatnim nie ma danych do wyświetlenia?

Wyświetla tyle ile jest zdjęć ale ostatnie nie ma danych, ilościowo jest ok. tylko nie wiem czemu nie wyświetla.

  1. <?php
  2. for ($i=0;$i<$imagen;$i++)
  3. ?>

Zmienna i nie może być większa niż ilość zdjęć tu jest dobrze tak mi się wydaje
Ale jak to wyświetlić to nie wiem w ogóle co jest źle.
  1. <?php
  2. {echo "<a href="java script:click('".$fotos["nombre"][$i]."')">
  3. <img height=70 src=".$dir.$fotos["nombre"][$i]." border=1></a>";
  4. }
  5. ?>

Jak coś komuś wpadnie to napiszcie bo ja nie wiem jak i co.
ARJ
  1. <?
  2. $dir = "images/";  # katalog zdjec foto /
  3. $ext = ".jpg|.gif|.png"; # rozszerzenia zdjęć/
  4. $tytul = "Razem zdjęć:"; # Ilość zdjęć w katalogu $dir/
  5. /*-----------------------------------------------------------------------*/
  6.  
  7.  
  8. $puk=opendir($dir);
  9. $imagen = 0;
  10. while ($fichero = readdir($puk)) {
  11. if (is_file($dir.$fichero) && eregi($ext,$dir.$fichero)) {
  12. $fotos["nombre"][$imagen] = $fichero;
  13. $fotos["modi"][$imagen] = filemtime($dir.$fichero);
  14. $imagen++;
  15. }
  16. }
  17. closedir($puk);
  18. /*-------------------------------------------------------------------------*/
  19.  
  20. function miniatury() {
  21. global $dir,$tytul,$imagen,$bytes,$fotos;
  22. $kb = number_format($bytes/1024);
  23. echo "<hr color=#8BBCF7><br>$tytul$imagen<br><div id="nazwa"> </div>";
  24. array_multisort($fotos["modi"],SORT_DESC,$fotos["nombre"]);
  25. reset($fotos);
  26. for ($i=0;$i<$imagen;$i++) {
  27. echo '<a href="java script:click(''.$fotos["nombre"][$i].'')"><img height="50" src="'.$dir.$fotos["nombre"][$i].'" border="1"></a>
  28. ';
  29. }
  30. }
  31. ?>
  32. <center><?
  33. ?>
  34. <script>
  35. function click(clicks) { document.images['zdjecie'].src="<?=$dir?>" + clicks; var nombre = clicks.substring(0,clicks.length-4); document.getElementById("nazwa").innerHTML = "Nazwa pliku:" + nombre.toUpperCase(); }
  36. </script>
  37. <tr>
  38. <img src=zdjecie.gif name="zdjecie" border=0>
  39. <?miniatury()?></center>

jeżeli chodzi o miniatury to poprawione jest echo wyświetlające link i zdjęcie. co do ostatniej miniaturki której nie było to byś do tego doszedł sprawdzając co zawiera tablica. był element bez indeksu. przy generacji tablic na początku skryptu dajesz $imagen++, ale gdzie jest zdefiniowana wartość tej zmiennej? wystarczyło wstawić przed pętlą wartość początkową: $imagen = 0; i wszystko gra.
w razie problemów pisz.
Ozarys
  1. <?php
  2. echo '<a href="java script:click(''.$fotos["nombre"][$i].'')"><img height="50" src="'.$dir.$fotos["nombre"][$i].'" border="1"></a>
  3. ';
  4. ?>

Po kliknięciu nie otwiera reszta dziala jak należy.
ARJ
yyy... zapomniałem
forum rozdziela napis javascript ma być pisane razem, bez spacji.
Ozarys
Wielkie dzięki działa jak należy teraz się biorę za dalsze prace z tym skryptem jeszcze raz dzięki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.