Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wczytywanie zdjęć bez przeładowania strony
Forum PHP.pl > Forum > XML, AJAX
pirates21
Witam.
Chcę aby po kliknięciu zdjęcia miniaturki załadował się większy obrazek. Chcę to zrobić przy pomocy ajaxowej funkcji getdata(). Problem w tym, zę po kliknięciu w miniaturkę ukazują się tzw. "krzaki" zamiast zdjęcia. Jak to wykonać poprawnie?

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us">
  3. <head>
  4. <title>jCarousel Examples
  5. </title>
  6. <!--
  7. Ajax - getdata();
  8. -->
  9. <script type="text/javascript" src="../lib/ajax.js"></script>
  10. </head>
  11. <body>
  12. <div id="wrap">
  13. <div id="imagePane>
  14. </div>
  15. <a href="#" onclick="getdata('../obrazki/1.jpg','imagePane');">
  16. <img src="../miniaturki/thumb_1.jpg"></a>
  17. </div>
  18. </body>
  19. </html>


  1.  
  2. // here we define global variable
  3. var ajaxdestination="";
  4.  
  5. function getdata(what,where) { // get data from source (what)
  6. try {
  7. xmlhttp = window.XMLHttpRequest?new XMLHttpRequest():
  8. new ActiveXObject("Microsoft.XMLHTTP");
  9. }
  10. catch (e) { /* do nothing */ }
  11.  
  12. document.getElementById(where).innerHTML ="<center><img src='loading.gif'></center>";
  13. // we are defining the destination DIV id, must be stored in global variable (ajaxdestination)
  14. ajaxdestination=where;
  15. xmlhttp.onreadystatechange = triggered; // when request finished, call the function to put result to destination DIV
  16. xmlhttp.open("GET", what);
  17. xmlhttp.send(null);
  18. return false;
  19. }
  20.  
  21. function triggered() { // put data returned by requested URL to selected DIV
  22. if (xmlhttp.readyState == 4) if (xmlhttp.status == 200)
  23. document.getElementById(ajaxdestination).innerHTML =xmlhttp.responseText;
  24. }
buliq
może pokażesz nam coś z tego getdata? mamy wróżyć gdzie masz błąd? smile.gif
Louner
Mnie się wydaje, że pobierasz strumień danych i próbujesz go wyświetlić jak obrazek. Może po prostu pobieraj sam odnośnik do większego zdjęcia i go wyświetlaj? Ewentualnie sprawdź MIME tego co pobierasz, bo może w tym jest błąd. smile.gif
buliq
HALO o.0 co ty robish questionmark.gif

document.getElementById(ajaxdestination).innerHTML =xmlhttp.responseText;

Pobierasz zawartość pliku i umieszczasz ją w div questionmark.gif no z tym to się jeszcze nie spotkałem. Przecież masz już informacje o tym gdzie jest pełnych rozmiarów obrazek, powinieneś zatem co najwyżej sprawdzać czy plik tam jest i wstawiać go tak jak wstawiasz loading.gif
melkorm
a ja się za pytam - na jaką cholerę do tego ajax potrzebny? Wystarczy że zmienisz src na "../obrazki/1.jpg" i będzie banglać.
pirates21
Po raz pierwszy mam do czynienia z technologia Ajax i nie znam nawet podstaw języka. Dlatego mam prośbę o poprawienie tego skryptu. Będę bardzo wdzięczny.
buliq
Proszę:

[JAVASCRIPT] pobierz, plaintext
  1. function getdata(what,where) {
  2. document.getElementById(where).innerHTML ='<center><img src="'+what+'"></center>';
  3. }
[JAVASCRIPT] pobierz, plaintext


o i ajax nie był potrzebny o.0 ?
pirates21
Dziękuję buliq. Działa. A powiedz proszę jak to rozwiązać bez Ajax?
buliq
Przecież to jest rozwiązanie bez ajaxa smile.gif

Poczytaj co to jest AJAX tutaj. Tutaj dane masz już dostępne więc ajax nie jest potrzebny.
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.