Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: małe w duże obrazki
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
bim
Czesc. Moj problem polega na tym,ze nie znam JS a chcialbym osiaganac dosyc popularny efekt,a mianowicie wczytuje obrazek i chccialbym,zeby po kliknieciu na niego pojawial sie odpowiednio duzy obrazek. Sciezke jako tablice pobieram z bazy.Mala fotka sie wyswietla.Jak zrobic by po kliknieciu byla duza???licze na wasza pomoc.Oto moj kod
  1. <?php
  2.  
  3. include( './DisplayCart.php' );
  4. include( './ShoppingCart.class' );
  5.  
  6.  
  7. $pol = odbc_connect( &#092;"Wa-Pro\", \"\", \"\" ) or die(odbc_error());
  8.  
  9. $cart = isset( $_SESSION[ 'cart' ] ) ? unserialize( $_SESSION[ 'cart' ] ) : new ShoppingCart;
  10.  
  11. ?>
  12.  
  13. <table border=\"1\">
  14. <tr>
  15. <td width=\"200\">
  16.  
  17. <?php
  18. $query = \"SELECT ID_KATEGORII, NAZWA AS NAZWA from KATEGORIA_ARTYKULU\";
  19. $wynik = odbc_exec($pol, $query);
  20.  
  21. while( $wiersz = odbc_fetch_into( $wynik, $tablica ) )
  22. {
  23. $query3 = \"SELECT COUNT(*) FROM artykul WHERE ID_KATEGORII =$tablica[0]\";
  24. $wynik2= odbc_exec($pol,$query3);
  25. //$wiersz = 1;
  26. $wiersz2 = odbc_fetch_into($wynik2, $tablica2);
  27. // echo\" <tr> <td align=\"center\"> $tablica[0] </td> </tr>n \";
  28. echo \"<a href=\"index.php?nid=$tablica[0]\">$tablica[1] ($tablica2[0])</a><br/>n\";
  29. }
  30. ?>
  31.  
  32. </td>
  33. <td width=\"300\">
  34.  
  35. <?php
  36. if( isset( $_GET[ 'nid' ] ) )
  37. {
  38. echo '<table BORDER=1 bordercolor=red>
  39. <TR>
  40. <TD>NAZWA</TD>
  41. <TD>ID</TD>
  42. <TD>OPIS</TD>
  43. <TD>CENA</TD>
  44. <TD>DODAWANIE</TD>
  45.  <TD>FOTO</TD>
  46. </TR>';
  47.  $query2 = \"SELECT dbo.ARTYKUL.NAZWA, dbo.ARTYKUL.ID_ARTYKULU, dbo.ARTYKUL.OPIS, dbo.CEN
  48. _ARTYKULU.CENA_BRUTTO,
  49.  dbo.CENA_ARTYKULU.ID_CENY, dbo.ARTYKUL.POLE1
  50. FROM  dbo.ARTYKUL INNER JOIN dbo.CENA_ARTYKULU ON dbo.ARTYKUL.ID_ARTYKULU = dbo.CENA_ARTYKULU.ID_ARTYKULU
  51. WHERE (dbo.CENA_ARTYKULU.ID_CENY = 2) AND ( dbo.ARTYKUL.ID_KATEGORII = '$_GET[nid]')&#092;";
  52.  
  53.  $wynik = odbc_exec($pol, $query2);
  54.  
  55.  while($wiersz = odbc_fetch_into($wynik, $tablica))
  56.  { if( $tablica[5]== 'n') // sprawdzenie czy w bazie jest zdjecie, n-oznacza, ze nie ma
  57. {
  58.  $tablica[5]= 'foto_niedostepne.jpg';
  59. }
  60. else{}
  61.  $cena= sprintf(&#092;"%01.2f\",$tablica[3]);
  62.  echo &#092;"<tr>
  63.  <td align=&#092;"center\"> $tablica[0] </td>
  64.  <td align=&#092;"center\"> $tablica[1] </td>
  65.  <td align=&#092;"center\"> $tablica[2] </td>
  66.  <td align=&#092;"center\">$cena</td>
  67.  <td align=&#092;"center\"><a href=\"cart.php?pid=$tablica[1]&do=Add\">Dodaj do koszyka</a></td>
  68.  
  69.  <td align=&#092;"center\"><IMG SRC=$tablica[5] border=1 height=60 width=100></td>
  70.  </tr>&#092;";
  71.  
  72.  }
  73.  echo '</table>';
  74. }
  75.  
  76. ?>
  77.  
  78. </td>
  79. <td width=\"300\">
  80.  
  81. <?php
  82.  
  83. $objDisplayCart = new DisplayCart( $cart );
  84. $objDisplayCart->DisplaySmall();
  85.  
  86. ?>
  87.  
  88. </td>
  89. </tr>
  90. </table>
  91. <?php
  92.  
  93. $_SESSION[ 'cart' ] = serialize( $cart );
  94.  
  95. ?>
mario
Daj to pomiędzy BODY
  1. function displayWindow(url, width, height)
  2. {
  3. var Win = window.open(url,"displayWindow",'width=' + width + ',height=' + height + ',resizable=0,scrollbars=yes,menubar=no' );
  4. }

pobierasz dane o obrazku:

  1. <?php
  2. list ($szerokosc, $wysokosc, $type, $attr) = getimagesize ($foto);
  3. ?>

a to jako linka do popup'a:

  1. <?php
  2. echo &#092;"<a href=\"javascript:displayWindow('foto.php?foto=$foto',$szerokosc,$wysokosc)\">popup</a>\";
  3. ?>

w pliku foto.php wystarczy, że zrobisz:

  1. <?php
  2. <img src='$_GET[foto]'>
  3. ?>


a to wszystko sobie dopieścisz wg. własnych potrzeb smile.gif
bim
Dzieki za odpowiedz ale czy mozesz trcohe wolniej?:)skad to pobieram?Mam na sztywno podac te wielkosci np. $szerokosc=100?
  1. <?php
  2. list ($szerokosc, $wysokosc, $type, $attr) = getimagesize ($foto);
  3. ?>
mario
nie musisz, za pomocą funkcji list możesz "wyciągnąć" dane o obrazku bezpośrednio. Podaj ścieżkę do tego obrazka dla:

  1. <?php
  2. list ($szerokosc, $wysokosc, $type, $attr) = getimagesize ($foto);
  3. ?>

Funkcja zwróci Ci w zmiennych odpowiednie wartości $szerokosc, $wysokosc. I tak będziesz mógł mieć dokładnie dopasowane okienka gdzie będziesz wyświetlać powiększone fotki. Musisz do tych wartości szerokosc i wysokosc dodać po kilka(naście pikseli) aby pozbyć się pasków przewijania, nie piszę tu ile dokładnie, gdyż różne przeglądarki mają różne szerokości. Będzie to wyglądało więc tak:

  1. <?php
  2. echo &#092;"<a href=\"javascript:displayWindow('foto.php?foto=$foto',$szerokosc+questionmark.gif?,$wysokosc+questionmark.gif?)\">popup</a>\";
  3. ?>

gdzie questionmark.gif? to wspomniane piksele poszerzające okno w celu pozbycia się pasków przewijania. Proponowałbym również w pliku odpowiedzialnym za wyświetlanie powiększonych obrazków powiedzmy foto.php stworzyć "zerowe" marginesy

  1. <BODY BGCOLOR="#ffffff" LEFTMARGIN="0" RIGHTMARGIN="0" TOPMARGIN="0" BOTTOMMARGIN="0">
  2. <?php <img src='$_GET[foto]'>
  3. ?>

wtedy obrazek będzie wypełniał całe pole w powiększonym okienku.
bim
W jaki sposb mam podac sciezke? Wstawilem pojawia sie popupale z bledami.
mario
podeślij mi na maila kod - pozbędziemy się błędu smile.gif
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.