Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [js, jquery] Przekazywanie zmiennej
MorF
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 20.03.2005
Skąd: Warszawa

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


Witajcie,
przeszukalem google ale jakos nie znalazlem odpowiedzi,
probuje swoich sil z jquery do uwtorzenia prostych dynamicznych datagrid'ow

mam funkcje
  1. function UpdateHist(strona)
  2. {
  3. $.ajax({
  4. type: "GET",
  5. url: 'include/parser.php',
  6. data: 's='+strona+'&r=10',
  7. dataType: "xml",
  8. success: function(xml){
  9. $('hist',xml).each(function(i){
  10.  
  11. zmienna+="<TR><TD>"+$(this).find('id_usera').text()+"</TD><TD>"+$(this).find('data').text()+"</TD><TD>"+$(this).find('czynnosc').text()+"</TD></TR>";
  12. });
  13. },
  14. error: function(){alert("Ajax error");}
  15.  
  16.  
  17. });
  18. return zmienna;
  19. }


sek w tym ze wartosc zmienna zwracana przez funkcje jest pusta.
Domyslam sie ze chodzi tutaj o jej zasieg.

jak rozwiazac ten problem?

Dziekuje za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
lord_t
post
Post #2





Grupa: Zarejestrowani
Postów: 603
Pomógł: 131
Dołączył: 24.07.2007
Skąd: Górny Śląsk

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


No to spróbuj na początku definicji funkcji dać var zmienna=""
Go to the top of the page
+Quote Post
MorF
post
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 20.03.2005
Skąd: Warszawa

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


no to zwraca mi nadal pusta ;/
a jak dalem
  1. var zmienna="test";

no to wypluwa test, jakby zupelnie nie modyfikowala
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Może spróbuj tak?
Kod
document.zmienna+="<TR><TD>"+$(this).find('id_usera').text()+"</TD><TD>"+$(this).find('data').text()+"</TD><TD>"+$(this).find('czynnosc').text()+"</TD></TR>";

//...

return document.zmienna;
Go to the top of the page
+Quote Post
MorF
post
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 20.03.2005
Skąd: Warszawa

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


teraz dalem cos takiego
  1. function UpdateHist(strona,sortowanie,kolejnosc)
  2. {
  3. zmienna="ta";
  4.  
  5. $.ajax({
  6. type: "GET",
  7. url: 'include/parser.php',
  8. data: 's='+strona+'&r=10&sort='+sortowanie+'&ord='+kolejnosc,
  9. dataType: "xml",
  10. success: function(xml)
  11. {
  12.  
  13. $('hist',xml).each(function(i)
  14. {
  15. document.zmienna="tutaj wartosc";
  16. }
  17. );
  18. },
  19. error: function(){alert("Ajax error");}
  20.  
  21.  
  22. });
  23.  
  24. alert (document.zmienna);
  25. return document.zmienna;
  26.  
  27. }


i za pierwszym wywolaniem funkcji jest niezdefiniowana tj "undefined" a potem juz wyskakuje dobrze "tutaj wartosc" , szczerze mowiac nie mam pojecia dlaczego, przeciez
  1. document.zmienna="tutaj wartosc";

jest wykonywane co najmniej kilkanascie razy ;/

Ten post edytował MorF 2.03.2009, 00:29:17
Go to the top of the page
+Quote Post
lord_t
post
Post #6





Grupa: Zarejestrowani
Postów: 603
Pomógł: 131
Dołączył: 24.07.2007
Skąd: Górny Śląsk

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


Moim zdaniem: najpierw jest undefinded ponieważ żądanie ajaxa jest domyślnie asynchroniczne ajax() sam w sobie skończy się szybciej niż przyjdzie odpowiedź i w związku z tym wykona się alert dla pustej zmiennej.

Czemu w ogóle chcesz zwracać tą zmienną? Nie możesz jej użyć w funkcji success?
Go to the top of the page
+Quote Post
MorF
post
Post #7





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 20.03.2005
Skąd: Warszawa

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


Cytat(lord_t @ 2.03.2009, 09:53:06 ) *
Czemu w ogóle chcesz zwracać tą zmienną? Nie możesz jej użyć w funkcji success?


wiesz potrzebuje zwrocic jej wartosc zeby w innej funkcji wykonac z jquery $("#element").append(wartosc_zwrocona_przez_funkcje)
a nie moge tego odrazu umiescic w bloku success, bo bede ta tresc dolaczal do roznych elementow ;/
Go to the top of the page
+Quote Post

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: 15.09.2025 - 03:27