Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] what is not defined
MaestroS
post
Post #1





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Kanagawa-ken, Japonia

Ostrzeżenie: (10%)
X----


Mam taką funkcję:

  1. <?php
  2. function Renew(what, user)
  3. {
  4. advAJAX.post({
  5. url : "exec/renew.php",
  6. parameters:{
  7.  what: what,
  8.  user: user,
  9. ident: "1"
  10. },
  11. onSuccess : function(obj) {
  12. document.getElementById(what).innerHTML='';
  13. document.getElementById(what).innerHTML=obj.responseText;
  14. setTimeout("Renew(what,user)", 1000);
  15. },
  16. });
  17. }
  18. ?>


Dlaczego krzyczy, że "what" jest niezdefiniowany ?
Chodzi o to:
  1. <?php
  2. setTimeout("Renew(what,user)", 1000);
  3. ?>
Go to the top of the page
+Quote Post
L_Devil
post
Post #2





Grupa: Zarejestrowani
Postów: 195
Pomógł: 0
Dołączył: 13.04.2004
Skąd: Łódź

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


Ponieważ funkcja w timeout jest wywoływana globalnie (innymi słowy wszystkie parametry lokalne giną w momencie zakończenia wykonywania się funkcji Renew). Jeżeli what i user to "zwykłe" zmienne (a więc nie tablice, ani nic co trzeba serializować), to pomoże takie rozwiązanie:

Kod
function Renew(what, user)
{
    advAJAX.post({
                      url : "exec/renew.php",
                      parameters:{
                     what: what,
                     user: user,
                                ident: "1"
                  },
                  onSuccess : function(obj) {
                    document.getElementById(what).innerHTML='';
                    document.getElementById(what).innerHTML=obj.responseText;
                    setTimeout("Renew(" + what + "," + user + ")", 1000);
                },
                });
}

W innym wypadku konieczne może okazać się utworzenie globalnej tablicy, która będzie zapamiętywać wywołania Renew i jej parametry

Ten post edytował L_Devil 4.11.2007, 11:57:06


--------------------
Językiem którym najlepiej operują wszyscy programiści są przekleństwa.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 03:18