Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Galeria zdjęć
Forum PHP.pl > Forum > Przedszkole
tomsi
Mam taki problem. Za pomocą kodu:
  1. <?php
  2. echo '<img src="foto/id'.$id.'zdj0.jpg" width="100" height="100">';
  3. ?>

wstawiam zdjęcię. I teraz chciałem żeby po kliknięciu na zdjęcie zostało ono powiększony w nowym oknie. Wstawiłem taki kod:
  1. <?php
  2. echo '<A href="javascript:expand("foto/id '. $id .' zdj0.jpg")">
  3. <IMG border=0 width="150" height="113" src="foto/id'.$id.'zdj0.jpg">';
  4. ?>

ale to nie działa.
Dodam jeszcze, że zdjęcia mają nazwy w postaci, np. id3zdj0.jpg
Nazwa zdjęcia tworzy się sama w zależności do czego jest dodana ma inne id oraz które to jest zdjęcie w tym id.
KCG
a może <a href="zdj.jpg" onclick="target='nowe_okno'"><img ... /></a> ?
wieprzucpp
spróbuj tak
  1. <?php
  2. $id="3z";
  3. $sciezka="foto/id$id"."zdj0.jpg";
  4.  
  5. echo("<a href=\"javascript:window.open('$sciezka','c','top=0,left=0,width=500,height=500','scrollbars=yes');void(null);\">XXX</a>");
  6. ?>


Pozdro
tomsi
Ok ale tego

  1. <?php
  2. $id="3z";
  3. ?>


to nie podawałem. Niech się zmienia w zależonści od produktu.

A może masz pomysł jeszcze jak zrobić żeby jeżeli pod tym samym id było kilka zdjęc to żeby można było je też przejrzeć wszystkie a nie tylko to co się kliknęło.
KCG
A jak Ty te zdjęcia w ogóle zapisujesz/wczytujesz? Bo generalnie trudno z jednego niepowtarzalnego id kilka zdjęć oglądać.
tomsi
Zdjęci są dodawane przez admina do produktu. Są wrzucane do jednego folderu i jednocześnie nadaje im unikalne nazwy w postaci takiej, że w zależności do jakiego produktu taki dostaje numer id i dodatkowo do tego id dostaje numer zdjecia.

Np. monitory to mają u mnie w bazie id=4, więc dodaje zdjęcie i ono będzie miało nazwę id4zdj0.jpg dodam jeszcze jedno to będzie miało nazwę id4zdj1.jpg itd.
kallosz
to pobierz za pomocą get

$id=$_GET['numer'];
wieprzucpp
Cytat(tomsi @ 12.04.2008, 23:06:30 ) *
Zdjęci są dodawane przez admina do produktu. Są wrzucane do jednego folderu i jednocześnie nadaje im unikalne nazwy w postaci takiej, że w zależności do jakiego produktu taki dostaje numer id i dodatkowo do tego id dostaje numer zdjecia.

Np. monitory to mają u mnie w bazie id=4, więc dodaje zdjęcie i ono będzie miało nazwę id4zdj0.jpg dodam jeszcze jedno to będzie miało nazwę id4zdj1.jpg itd.

no to banalna sprawa. Wystarczy zrobić pętle. Ale teraz wszystko zależy od Ciebie jak to sobie graficznie oprawisz. A ogólny schemat będzie wyglądał tak:

  1. <?
  2. $id=$_GET['id'];
  3.  
  4. //przydało by się abyś miał gdzieś zapisane ile jest zdjęć w danej kategorii. Wtedy pętla wyglądała by tak:
  5. $a=$ile_jest_w_danej_kategorii_produktow;
  6.  
  7. $x=0;
  8. while($x<=$a)
  9. {
  10. $sciezka="foto/id$id"."zdj$x.jpg";
  11.  
  12. echo("<a href=\"javascript:window.open('$sciezka','c','top=0,left=0,width=500,height=500','scrollbars=yes');void(null);\">XXX</a><br>");
  13. $x++;
  14. }
  15. ?>


A jeśli nie masz zapisanej liczby produktów (zdjęć) to możesz zrobić to tak:
  1. <?
  2. $id=$_GET['id'];
  3.  
  4. $x=0;
  5. $a=-1;
  6. while($x<$a)
  7. {
  8. $sciezka="foto/id$id"."zdj$x.jpg";
  9.  
  10. if(is_file("$sciezka")==0)
  11. {
  12. break;
  13. }
  14. else
  15. {
  16. echo("<a href=\"javascript:window.open('$sciezka','c','top=0,left=0,width=500,height=500','scrollbars=yes');void(null);\">XXX</a><br>");
  17. $x++;
  18. }
  19. }
  20. ?>


Ja osobiście polecam Ci pierwsze rozwiązanie ;]

p.s. mam nadzieje, że się nigdzie nie pomyliłem tongue.gif. Pozdro
tomsi
A czemu jak mam taki kod

  1. <?php
  2. for($i=0; $i<$zdjecie;$i++)
  3. {
  4.  
  5. echo '<b>Zdjecie nr '.($i+1).': </b><img src="foto/id'.$id.'zdj'.$i.'.jpg" width="100" height="100" alt="Zdjecie nr '.($i+1).'"><br><br>';
  6.  
  7. }
  8. ?>


wyświetla mi zdjęcie nazwijy je miniaturkę, a w kodzie

  1. <?php
  2. for($i=0; $i<$zdjecie;$i++)
  3. {
  4.  
  5. $sciezka='foto/id'.$id.'"."zdj'.$i.'.jpg';
  6. $mini='<img border="0" src="foto/id'.$id.'zdj'.$i.'jpg" width="100" height="100" alt="Zdjecie nr '.($i+1).'"><br><br>';
  7.  
  8. echo("<a href=\"javascript:window.open('$sciezka','Okno','top=0,left=0,width=500,height=500','scrollbars=yes');void(null);\">$mini</a>");
  9.  
  10. }
  11. ?>


Zdjęcia małego nie ma, chociaż po kliknięciu na napis, który określiłem w "alt" otwiera się poprawne większe zdjęcie.
Kicok
A może warto samemu popatrzeć w źródło wygenerowanej strony i poszukać błędów.

Wiem, że znalezienie literówki nie większej od kropki w takiej ilości kodu HTML może być ciężkie, ale wystarczy chwilę pomyśleć nad istota problemu i można poszukiwania zawęzić do atrybutów src="" tongue.gif
tomsi
Patrzyłem, ale nie zauważyłem smile.gif Dzięki.

Poprawny kod:

  1. <?php
  2. for($i=0; $i<$zdjecie;$i++)
  3.  
  4. {
  5.  
  6. $sciezka='foto/id'.$id.'zdj'.$i.'.jpg';
  7. $mini='<img src="foto/id'.$id.'zdj'.$i.'.jpg" border="0" width="100" height="100" alt="Zdjecie nr '.($i+1).'"><br><br>';
  8.  
  9. echo("<a href=\"javascript:window.open('$sciezka','Okno','top=0,left=0,width=500,height=500','scrollbars=yes');void(null);\">$mini</a>");
  10.  
  11. }
  12. ?>


Jeszcze w zmiennej $sciezka zlikwidowałem "." przed zdj.
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.