Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][JavaScript] Wykonanie funkcji pobranej za pomocą ajax
Forum PHP.pl > Forum > Przedszkole
patryk9200
Witam,

Mam taki problem, pobieram do div'a zawartość za pomocą ajaxa, problem w tym, że w żaden sposób nie udało mi się wykonać funkcji do której się odwołuję
po pobraniu zawartości.
zaraz po załadowaniu diva muszę wykonać taką funkcję:
  1. <script type="text/javascript">showPictures('/143/','show');</script>


czy jest to w ogóle wykonalne?
myślałem też żeby zrobić to na takiej zasadzie, że jakaś funkcja przeszukuje co 1s kod strony w poszukiwaniu czy nie została wywołana ta funkcja.
Dodam, że na js za bardzo się nie znam więc wskazówki z opisem mile widziane
nospor
ajax ma takie zdarze jak COMPLETE. Wystarczy ze do niego wstawisz wywolanie swojej funkcji i po sprawie.

Do ajaxa skorzystaj z jakiegoś liba, np. jQuery
patryk9200
a jak to zdarzenie zastosować w tym wypadku? niewiele jest na jego temat, a nie chcę stosować bibliotek typu jQuery czy prototype ponieważ potrzebuję to tylko do jednego elementu który jest w panelu administracyjnym i pozwala na modyfikowanie/dodawanie/usuwanie/zmiana kolejności zdjęć bez potrzeby odświeżania strony.
Cały ten mój "skrypt" wygląda tak:
  1. <script type="text/javascript">
  2. var xmlhttp;
  3. function showPictures(str,str2,str3)
  4. {xmlhttp=GetXmlHttpObjectt();
  5. var url="'.URL.'upload_pictures.php";
  6. url=url+"?S-20_dir="+str+"&action="+str2+"&U_offerId="+str3+"";
  7. xmlhttp.onreadystatechange=stateListChangedd;
  8. xmlhttp.open("GET",url,true);
  9. xmlhttp.send(null);}
  10. function stateListChangedd()
  11. {if (xmlhttp.readyState==4)
  12. {document.getElementById("div_pictures").innerHTML=xmlhttp.responseText;
  13. document.getElementById("div_pictures").style.display = "";}}
  14. function GetXmlHttpObjectt()
  15. {if (window.XMLHttpRequest)
  16. {return new XMLHttpRequest();}
  17. if (window.ActiveXObject)
  18. {return new ActiveXObject("Microsoft.XMLHTTP");}
  19. return null;}

następnie po wywołaniu funkcji jest wczytywana zawartość zwróconych danych do diva
a nie chcę drzwi armatą wyważać...
nospor
Cytat
a nie chcę drzwi armatą wyważać...
bez przesady... im szybciej się zapoznasz z porządnym libem tym lepiej dla Ciebie.

Kod
function stateListChangedd()
{if (xmlhttp.readyState==4)
{
alert('ZAMIAST TEGO ALERT WYWOLAJ SOBIE FUNKCJE JAKĄ CHCESZ');
document.getElementById("div_pictures").innerHTML=xmlhttp.responseText;
document.getElementById("div_pictures").style.display = "";}}
patryk9200
Cytat(nospor @ 17.08.2010, 20:57:59 ) *
bez przesady... im szybciej się zapoznasz z porządnym libem tym lepiej dla Ciebie.

Kod
function stateListChangedd()
{if (xmlhttp.readyState==4)
{
alert('ZAMIAST TEGO ALERT WYWOLAJ SOBIE FUNKCJE JAKĄ CHCESZ');
document.getElementById("div_pictures").innerHTML=xmlhttp.responseText;
document.getElementById("div_pictures").style.display = "";}}


nie działa, tzn. znika cały div, co wydaje się dziwne...
nospor
moj blad:
Cytat
function stateListChangedd()
{if (xmlhttp.readyState==4)
{
document.getElementById("div_pictures").innerHTML=xmlhttp.responseText;
document.getElementById("div_pictures").style.display = "";
alert('ZAMIAST TEGO ALERT WYWOLAJ SOBIE FUNKCJE JAKĄ CHCESZ');
}}
patryk9200
dzięki działa, mam jeszcze jeden problem, mam w JavaScript 2 podobne funkcje, zauważyłem, gdy wywołam 1 z nich to zmienia też zawartość elementu funkcji
drugiej która się do niego odnosi, próbowałem to jakoś rozwiązać ale konflikt dalej jest
kod:
  1. <script type="text/javascript">
  2. var xmlhttp;
  3. function showList(str,str2)
  4. {xmlhttp=GetXmlHttpObject();
  5. var url="http://alpha.autos24.pl/show_models.php";
  6. url=url+"?N-4_marka="+str+"&selectID="+str2;
  7. xmlhttp.onreadystatechange=stateListChanged;
  8. xmlhttp.open("GET",url,true);
  9. xmlhttp.send(null);}
  10. function stateListChanged()
  11. {if (xmlhttp.readyState==4)
  12. {document.getElementById("select").innerHTML=xmlhttp.responseText;
  13. document.getElementById("hidden_select").style.display = "none";
  14. document.getElementById("select").style.display = "";}}
  15. function GetXmlHttpObject()
  16. {if (window.XMLHttpRequest)
  17. {return new XMLHttpRequest();}
  18. if (window.ActiveXObject)
  19. {return new ActiveXObject("Microsoft.XMLHTTP");}
  20. return null;}
  21.  
  22. <script type="text/javascript">
  23. var xmlhttp;
  24. function showPictures(str3,str4,str5)
  25. {xmlhttp=GetXmlHttpObjectt();
  26. var url2="http://alpha.autos24.pl/upload_pictures.php";
  27. url2=url2+"?S-20_dir="+str3+"&action="+str4+"&U_offerId="+str5+"";
  28. xmlhttp.onreadystatechange=stateListChangedd;
  29. xmlhttp.open("GET",url2,true);
  30. xmlhttp.send(null);
  31. }
  32. function stateListChangedd()
  33. {if (xmlhttp.readyState==4)
  34. {document.getElementById("div_pictures").innerHTML=xmlhttp.responseText;
  35. document.getElementById("div_pictures").style.display = "";}}
  36. function GetXmlHttpObjectt()
  37. {if (window.XMLHttpRequest)
  38. {return new XMLHttpRequest();}
  39. if (window.ActiveXObject)
  40. {return new ActiveXObject("Microsoft.XMLHTTP");}
  41. return null;}

odwołuję się do nich kolejno tak:
  1. <script type="text/javascript">
  2. showList(4, 8);

  1. <script type="text/javascript">showPictures('54ygh6yu','show',0);</script>
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.