Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [dojo] problem z wyszukaniem elementu (dziwne)
Forum PHP.pl > Forum > XML, AJAX > AJAX
werek
Mam dosyć specyficzny problem, ale moze rozpoczne najpierw od kodu. ponizej znajduje sie moja deklaracja klasy javascript do cyklicznego wywolywania wysylki kolejnej porcji newsletter'a (gro logiki po stronie serwera):

  1. dojo.require("dojox.timing._base");
  2. /*
  3. klasa js do obslugi procesu wysylania maili
  4. */
  5. function jobProcess (/* string */ link, /* htmlelement id*/button) {
  6. this.link=link;
  7. this.buttonID=button;
  8. this.pbh=null;
  9. this.timer= null;
  10. this.load= function (response,ioArgs){
  11. dojo.byId('result_send_count').innerHTML=response.sent_count;
  12. dojo.byId('result_send_total').innerHTML=response.total;
  13. dojo.byId('result_send_adresy').innerHTML=response.adresy;
  14. dojo.byId('result_progressbar').style.width=response.percentage + '%';
  15. dojo.byId('result_progressbar').innerHTML=response.percentage + '%';
  16. dojo.byId('wrapper_wysylki').style.display='block';
  17. }
  18. this.start= function (){
  19. if (this.timer == null){
  20. this.timer=new dojox.timing.Timer();
  21. this.timer.onTick=function(){
  22. dojo.xhrPost( {
  23. url: this.link,
  24. handleAs: "json",
  25. load: this.load
  26. });
  27. }
  28. }
  29. this.timer.start();
  30. dojo.byId(this.buttonID).value='Zatrzymaj';
  31. dojo.byId(this.buttonID).onclick=this.stop;
  32. }
  33. this.stop= function (){
  34. this.timer.stop();
  35. dojo.byId(this.buttonID).value='Wznów';
  36. dojo.byId(this.buttonID).onclick=this.start;
  37. }
  38. dojo.byId(this.buttonID).onclick=this.start;
  39. }


wywoluje co okreslony czas url ktory procesuje porcje adresow i zwraca co wyslal i jaki jest aktualny stan zeby uaktualnic interfejs. dojo jednak wywala mi sie na linii
  1. dojo.byId(this.buttonID).value='Zatrzymaj';


w momencie klikniecia na button aby uruchomic akcje, wywalajac komunikat bledu "this.buttonID is Undefined". klase inicjalizuje za pomoca wpisu:

  1. <script language="javascript">
  2. dojo.addOnLoad(function(){
  3. var wysylka_newsletter= new jobProcess('/newsletter/admin/processjob/id/2','wysylka');
  4. });
  5. </script>


ktory znajduje sie w kodzie wygenerowanej strony zaraz po definicji button'a. bylbym wdzieczny za pomoc, stawiam dopiero pierwsze kroki w oop javascript i nie znam niuansow które pewnie znaja osoby przegladajace to forum.

Pozdrawiam
chomiczek
a czy nie proście zrobić tak:
- pytasz bazę o np. 50 kolejnych rekordów;
- wysyłasz im newsletter;
- zapisujesz ID ostatniego rekordy;
- jak wyślesz już 50 newsletterów dajesz w kodzie <meta http-equiv="refresh" content="1;url=http://twojastrona.pl/twojskrypt.php?startujOD=zapamietanyIDostatniegoRekordu">
- po wysłaniu masz samoczynne przeładowanie i zaczyna wykonywać się to samo, ale już staruje nie od pierwszego rekordu, ale od tego, który jest określony w ID
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.