Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jquery] - wykonaj skrypt po załadowaniu elementu div
Forum PHP.pl > Forum > XML, AJAX > AJAX
dantekir
Witam,

Mam dwa elementy DIV
pierwszy (id='info') i drugi (id='progress')
w drugim elemencie wykonywany jest dość duża aktualizacja bazy (jego wykonanie trwa dość dużo czasu), chciałbym ją jednak podzielić pewne etapy.
np po uaktualnieniu tabeli1 w elemencie id=info pojawiałaby się informacja "uaktualniono tabelę 1"
po uaktualnieniu tabeli 2 informacja "uaktualniono tabelę 2"

w zasadzie to problem sprowadza się do wykonania skryptu w momencie gdy pewien element div (znajdujący się np w ramach id='progress' ) zostanie załadowany.

Korzystam z jquery. i niestety nie wiem jak sobie z tym pewnie prostym problemem poradzić.
Próbowałem umieszczać wykonanie skrytpu nawet w ramach <body onload=''>//uaktualnienie tabeli1</body> ale ku mojemu zaskoczeniu nie działa...

Będę dźwięczny za pomoc smile.gif
ayeo
Do funkcji wysyłającej żądanie w jQuery możesz przekazać parametr SUCCESS, który okreśja jaka funkcja ma być wywołana w przypadku pozytywnego zakończenia.

Kod
$.ajax({
  type: "POST",
  url: "some.php",
  data: "name=John&location=Boston",
  success: function(msg){
    alert( "Data Saved: " + msg );
  }

});


Pozdrawiam!
dantekir
no tak...
ale w jaki sposób to wykorzystać, w którym momencie?
początkowo mam tak:
  1. <div id='updateinfo'></div>
  2. <div id='updateprogress'></div>

po kliknięciu w przycisk 'aktualizuj' (odwołanie do funkcji:

  1. <?php
  2. function updatedostawca($id)
  3. {
  4.  
  5. $.ajax({ type: "GET",
  6. url: "update"+$id+".php?SID",
  7. data: {
  8. id: $id
  9. },
  10. success: function(data) {
  11. $("#updateprogress").html(data);
  12. }
  13.  
  14. })
  15.  
  16. $.ajax({ type: "GET",
  17. url: "updateinfo.php?SID",
  18. data: {
  19. id: $id
  20. },
  21. success: function(data) {
  22. $("#updateinfo").html(data);
  23. }
  24.  
  25. })
  26.  
  27. }
  28. ?>


do tych dwóch div-ów ładuje informacje i wyglądają odpowiednio:

  1. <div id='updateinfo'>Rozpoczynam aktualizację dostawcy...</div>
  2. <div id='updateprogress'>
  3.  
  4. Rozpoczęto aktualizację dostawcy
  5. <div id='info1'>
  6. //tutaj kod wykonwywujący coś tam
  7. wykonano kod 1
  8. </div>
  9. <div id='info2'>
  10. //tutaj kod wykonwywujący coś tam
  11. wykonano kod 2
  12. </div>
  13. <div id='info2'>
  14. //tutaj kod wykonwywujący coś tam
  15. wykonano kod 3
  16. </div>
  17.  
  18. </div>

i teraz chciałbym aby po wykonaniu kodu 1 pojawiała się informacja 'wykonano kod 1' w divie o id='updateinfo' po wykonaniu kodu 2 info 2 itd.

już sobie pomogłem... winksmiley.jpg
  1. function updatedostawca($id)
  2. {
  3. $("#updateinfo").html('rozpoczynam aktualizację dostawcy prx...');
  4. $.ajax({ type: "GET",
  5. url: "update"+$id+".php?SID",
  6. data: {
  7. id: $id
  8. },
  9. success: function(data) {
  10. $("#updateprogress").html(data);
  11.  
  12. }
  13.  
  14. })
  15.  
  16.  
  17.  
  18. }


a po każdym załadowanym divie dałem:
<script type=\"text/javascript\">$('#updateinfo').html('połączono z serwerm ftp')</script>

po obiedzie jednak się lepiej myśli winksmiley.jpg
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.