Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jquery] zmienne globalne
MadMark
post
Post #1





Grupa: Zarejestrowani
Postów: 105
Pomógł: 3
Dołączył: 12.07.2010

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


Witam, mam problem ze zmiennymi (globalne i lokalne) a mianowicie:
  1. var a = '';
  2. $(document).ready(function(){
  3. $.ajax({
  4. type: "POST",
  5. url: "./login.php",
  6. data: "em1=itwork",
  7. success: function(msg){
  8. a = msg;
  9. }
  10. });
  11. alert(a);
  12. //...

Czyli po kolei, inicjuję zmienną -> wykonuje działanie w pliku php, dostaje zwrot -> przypisuję i... tu jest problem...
Jak wyświetlę po przypisaniu "a" to ma wartość, ale w alercie już nie ma wartości.

Jak to poprawić? Tzn jak edytować w ajaxie zmienną globalną?
Kombinowałem z tym ale nie znam się na tyle, aby samemu dać radę.
Z góry dziękuję za pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zegarek84
post
Post #2





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


chyba jest dobrze... ustaw dłuuugi timeout na tego alerta - odpowiedź z ajax'a zawsze będziesz miał później - dlatego stosuje się callbacki (chyba, że zastosujesz ajax synchroniczny)... czyli tego alerta wywołaj tak: setTimeout(function(){alert(a);},4000);

lub jeśli chciałeś daną akcję inicjalizować po otrzymaniu odpowiedzi z ajax'a to musisz inicjować to w callbacku - o setTimeout wspomniałem tylko dla powyższego przykładu cobyś sobie sprawdził...

przy czym zaznaczę, że jeśli na niższym scope zadeklarujesz znowu tą zmienną poprzedzając przez var lub w definicji funkcji to to już będzie jakby zmienna lokalna ale też globalna w kontekście tej funkcji w głąb dla innych funkcji - sorki - dziwnie to zabrzmiało ;]

Ten post edytował zegarek84 5.06.2011, 13:00:46
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 7.10.2025 - 19:00