Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Otwierajace sie okno, o wielkosci obrazka w nim zawartego?
kpjeziorak
post
Post #1





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Iława

Ostrzeżenie: (0%)
-----


Mam do Was pytanie:
Czy istnieje mozliwosc w php, napisania skryptu, ktory po kliknieciu na link/obraz_miniature, otworzy mi okno (bez paskow narzedzi itp./same ramki), o wielkosci np. jakiegos obrazka, ktory ma sie wyswietlic w oknie? Tylko zalezy mi na tym, by skrypt sam sprawdzil jaki duzy jest obrazek i otworzyl odpowiednie okno, nie chce recznie edytowac wielkosci okna w linku.
Go to the top of the page
+Quote Post
czachor
post
Post #2





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


[php:1:9991026bbb]<?
$file="plik.jpg";
$a = getimagesize($file);
echo "szer: $a[0], wys: $a[1]";
?>[/php:1:9991026bbb]
pisałem od ręki, ale powinno działać
więcej: getimagesize
Go to the top of the page
+Quote Post
kpjeziorak
post
Post #3





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Iława

Ostrzeżenie: (0%)
-----


Hm, no dziala (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) , ale zupelnie nie o to mi chodzi, skrypt, ktory mi napisales pokazuje wielkosc obrazka, a ja potrzebuje skrypt, ktory bedzie mi otwieral okno, o wielkosci danego obrazka, no i oczywiscie w oknie bedzie ten onrazek. Czy istnieje cos takiego? Po za tym nie chce recznie definiowac wielkosci obrazkow, bo mam bardzo duzo obrazkow do wyswietlenia, a mi zalezy na czasie:)
Go to the top of the page
+Quote Post
Sh4dow
post
Post #4





Grupa: Zarejestrowani
Postów: 569
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Dąbrowa Górnicza

Ostrzeżenie: (0%)
-----


proponuje dodac jakies 20px do kazdej wielkosci otrzymanej z getimagesize i otworzenie nowego okienka ale juz poprzez JavaScript przyklad
[php:1:9a3df96703]<?php
$size = GetImageSize ($tutaj_sciazka_obrazka);
$width = $size[0]+10;
$height = $size[1]+10;
echo "<a href="java script: OnClick="window.open('".$tutaj_sciazka_obrazka."','img', 'width=".$width.", height=".$height.", menubar=no, scrolling=yes, fullscreen=0');">
<img src="".$tutaj_sciazka_obrazka."" border="0"></a>";
?>[/php:1:9a3df96703]
To jest oczywiscie prosty przyklad, ktory mozna modyfikowac na wiele sposobów, zycze powodzenia (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
kpjeziorak
post
Post #5





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Iława

Ostrzeżenie: (0%)
-----


(IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Cos mi nie wychodzi, np. jak mialby wygladac skrypt dla obrazka 03_wikielec.jpg - duzy obrazek, zas miniaturka na ktora klikam to 03_wikielec_small.jpg? Prosze o pomoc, bo jestem zielony w php:(
Go to the top of the page
+Quote Post
Bakus
post
Post #6


Administrator serwera


Grupa: Przyjaciele php.pl
Postów: 909
Pomógł: 0
Dołączył: 12.08.2003
Skąd: /var/www/wroclaw.php

Ostrzeżenie: (0%)
-----


[php:1:2f166b667b]<?php
function pokaz_obrazek($maly, $duzy)
{
$size = GetImageSize ($duzy);
$width = $size[0]+10;
$height = $size[1]+10;
print '<a href="#" OnClick="window.open(';
print "'" . $duzy . "', 'img, '";
print "width=" . $width . ," height=" . $height;
print ", menubar=no, scrolling=yes');">";
print '<img src="' . $maly . '" border="0"></a>';
}


// dla podanych obrazków zastosuj:
pokaz_obrazek("03_wikielec_small.jpg", "03_wikielec.jpg");
?>[/php:1:2f166b667b]
Go to the top of the page
+Quote Post
czachor
post
Post #7





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


heeeh.. edytowałem później posta i wyciąłem to co powinno jeszcze być (IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif) co prawda masz już rozwiązania podane, ale chodziło mi to:
[php:1:5ce01cc0c1]<?
$file="plik.jpg"; // duży obrazek
$a = getimagesize($file);
?>
<A HREF="java script:displayWindow('<?= $file ?>',<? echo "$a[0],$a[1]" ?>)"><img src="miniaturka.jpg"></a>[/php:1:5ce01cc0c1]
nazwy plików możesz zczytywać np. z tablicy
Go to the top of the page
+Quote Post
kpjeziorak
post
Post #8





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Iława

Ostrzeżenie: (0%)
-----


Niestety, zaden z przykladow, ktore mi podaliscie nie dziala (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) , chcialbym skupic sie na ostatnim przykladzie, ktory napisal "Czachor". Prawie wszystki jest ok, poprawnie pokazuje w linku wielkosc obrazka, tzn. okna, ktore ma sie otworzyc, miniatura takze sie wyswietla, jednak gdy klikam na miniature, wyskakuje blad JavaScript,:
Wiersz: 1
Znak: 1
Błąd: Oczekiwano obiektu
Kod: 0

Plik, w ktorym umiescilem skrypt ma rozszerzenie .php, po za przykladem czachora nic wiecej tam nie ma, zadnych innych kodow HTML`a czy innych, zmienilem tylko nazwy plikow, wiec co moze byc nie tak?
Go to the top of the page
+Quote Post
czachor
post
Post #9





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


oki mój błąd (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) mam jakiś zły dzień...
na początku dokumentu wstaw oczywiście funkcję displayWindow:
Kod
<script language="JavaScript" type="text/javascript">

function displayWindow(url, width, height) {

        var Win = window.open(url,"displayWindow",'width=' + width + ',height=' + height + ',resizable=0,scrollbars=no,menubar=no' );

};

</script>

niektóre przeglądarki czasami wstawiały auomatycznie margines do tego okienka, więc całość trochę się psuła... jeżeli będziesz miał też ten problem, daj znać, zapodam rozwiązanie
Go to the top of the page
+Quote Post
Sh4dow
post
Post #10





Grupa: Zarejestrowani
Postów: 569
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Dąbrowa Górnicza

Ostrzeżenie: (0%)
-----


[php:1:288fc40997]<script>
function img(img, width, height)
{
window.open(''+ img +'', 'img' , 'width=' + width + ', height=' + height + ', menubar=no, scrolling=yes, fullscreen=0');
}
</script>
...
<?php
$size = GetImageSize ($tutaj_sciazka_obrazka);
$width = $size[0]+10;
$height = $size[1]+10;
echo "<a href="java script: img(' ".$tutaj_sciazka_obrazka." ' ". $width ." ', ' ".$height." ');"><img src="".$tutaj_sciazka_mini obrazka."" border="0"></a>";
?>[/php:1:288fc40997]
skrypt w javie obsluguje otwarcie okienka o konkretnych rozmiarach, z obrazkiem lub jakims innym plikiem podanym w pierwszym parametrze. Musisz podac rowniez sciezke do pliku, wzgledna lub od glownego katalogu to jest obojetne. Wywołujesz funkcje tak jak w linku. Nie wiem jak ty to przepisujesz skoro nie dziala, ja podalem ci przyklad dzialajacy u mnie. Jak nie bedzie dzialac to podaj swoj kod z wklejonym skryptem. moze masz gdzies blad.
Go to the top of the page
+Quote Post
kpjeziorak
post
Post #11





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Iława

Ostrzeżenie: (0%)
-----


Do "Czachora": Teraz wszystko dziala, tylko prosilbym wlasnie o to rozwiazanie z marginesami, bo naprawde nie wyglada ciekawie w tej chwili (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Do "Sh4dow": w miejsce $tutaj_sciazka_obrazka wstawiam nazwe obrazka z rozszerzeniem, gdyz znajduje sie w tym samym miejscu co skrypt, no i nie dziala, probuje tez do tego: $tutaj_sciazka_obrazka przypozadkowac [php:1:5c08582050]<?php
$tutaj_sciazka_obrazka = "obraze.jpg";
?>[/php:1:5c08582050]
i tez nie dziala, nie wiem czemu, jako powinien poprawnie wygladac, skrypt dla obrazka obrazek.jpg i miniatury obrazek_small.jpg?
Go to the top of the page
+Quote Post
czachor
post
Post #12





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


oki, więc z tymi marginesami...
Nie jest to chyba najbardziej ekonomiczna metoda, ale nie próbowałem robić lepszej (może ktoś ma myśl, jak to ulepszyć?).
Link w zapodanym wyżej kodzie zmieniłem na:
Kod
<A HREF="javascript:displayWindow('pokaz.php',<? echo "$a[0],$a[1]" ?>)"><img src="miniaturka.jpg"></a>

teraz zawartość pokaz.php:
Kod
<html>

<head>

<title>obrazek</title>

</head>

<body style="margin: 0px">

<img src="plik.jpg">

</body>

</html>

Kliknięcie na małym obrazku otwiera okienko z plikiem pokaz.php, który ma zdefiniowane zerowe marginesy
i tylko wyświetla właściwy obrazek (plik.jpg).
Jeżeli masz więcej obrazków, do linka dostaw jakiś parametr, a w pliku pokaz.php wyświetlaj zależny od parametru obrazek.
Go to the top of the page
+Quote Post
kpjeziorak
post
Post #13





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Iława

Ostrzeżenie: (0%)
-----


No tak dziala, ale do kazdego oddzielnego obrazka musze tworzyc kolejny plik pokaz.php, dalej pokaz2.php itd. na szczescie udalo mi sie rozwiazac ten problem inaczej: w linku definiuje dla szerokosci i dlugosci okna dodatkowo +25px i wyswietla mi okno calkiem przyzwoicie, tak wiec dzieki Ci Czachor za rozwiazanie mojego problemu i tekze dziekuje reszcie, ktora probowala mi pomoc, wasze przyklady pewnie sa poprawne, tylko ja cos mieszam (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) no coz cienki jestem w te klocki, ale dzieki temu forum duzo sie ucze... PS: Napiszcie jak znacie jakies inne rozwiazania, moze w przyszlosci komus sie przydadza, pozdrawiam...
Go to the top of the page
+Quote Post
czachor
post
Post #14





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


nie musisz tworzyć za każdym razem nowego pliku
ja wyswietlam linki tak..
mam ileś plików np. image1.jpg, image2.jpg.....
wtedy modyfikujesz link do okienka :
np. do image1.jpg:
Kod
....pokaz.php?id=1...    (id to kolejny nr obrazka)
do image2.jpg:
Kod
....pokaz.php?id=2.....

i wtedy pokaz.php:[php:1:5e59b821ab]tutaj nagłówki
<img src="image<?= $id ?>.jpg">[/php:1:5e59b821ab] i wtedy Ci wyświetla konketny obrazek
Go to the top of the page
+Quote Post
kpjeziorak
post
Post #15





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Iława

Ostrzeżenie: (0%)
-----


hmm? Fajne rozwiazanie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) , mysle ze sie przyda, nie wiedzialem - a co ja wogole wiem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) - ze jest taka mozliwosc, dzieki za pomoc..
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 23:50