Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery] JSONP
k3nsei
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 25.06.2008

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


Mam taki kod (poniżej). Problem polega na tym że nie bodę się dobrać do zmiennych przypisywanych wewnątrz funkcji $.getJSON poza nią. Możecie podać jakąś propozycję jak to rozwiązać?
  1. <script type="text/javascript">
  2.  
  3. $(document).ready(function() {
  4.  
  5. mUrl = 'naruto';
  6. cUrl = '0';
  7.  
  8. var GetChaptersResponse = false;
  9.  
  10. $.getJSON('http://api.manga-lib.pl/api/reader_chapters/'+mUrl+'/json?jsoncallback=?', function(data) {
  11. var MangaUrl = data.seo;
  12. var MangaTitle = data.title;
  13. var Chapters = data.chapters;
  14. GetChaptersResponse = true;
  15. });
  16.  
  17. if(GetChaptersResponse) {
  18. alert(Chapters);
  19. }
  20. else{
  21. //alert('FALSE');
  22. }
  23.  
  24. });
  25. </script>
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ajax wykonuje się asynchronicznie.
tak wiec kod:
if(GetChaptersResponse) {
alert(Chapters);
}
else{
//alert('FALSE');
}
wykona się wczesniej niz to co jest w getJSON.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
k3nsei
post
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 25.06.2008

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


Do tego sam doszedłem. Czy możecie podać mi jakaś propozycję jak to rozwiązać?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No a nie możesz w getJSON wywołac kodu co cię interesuje? Dlaczego musisz po?

Mozesz od biedy powiedzieć też by się ajax wykonał synchronicznie. Jest to jednak niezalecane, gdyż wówczas staje ci cała strona na czas tego ządania.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
k3nsei
post
Post #5





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 25.06.2008

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


Bo strasznie zagęści mi się kod. Ale jak nie ma innego wyjścia to tak trzeba będzie zrobić.
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Bo strasznie zagęści mi się kod
Jak ci się coś zagęszcza, to uzywaj funkcji.

Cytat
Ale jak nie ma innego wyjścia to tak trzeba będzie zrobić.
Przeciez podałem ci inne wyjscie. Ino jest niezalecane smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
arecki
post
Post #7





Grupa: Zarejestrowani
Postów: 222
Pomógł: 35
Dołączył: 6.02.2005

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


Zadeklaruj var Chapters,MangaUrl,MangaTitle przed wywołaniem getJSON a w funkcji po prostu przypisz tez zmiennej wartość. Powinno zadziałać tak jak chcesz.


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




po co? Przeciez moze te parametry przekazać bezposrednio do funkcji


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
arecki
post
Post #9





Grupa: Zarejestrowani
Postów: 222
Pomógł: 35
Dołączył: 6.02.2005

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


No może, ja tylko napisałem alternatywny dla Twojego sposób żeby miał w globalnych zmiennych to czego potrzebuje. Pomijam fakt że dane i tak tam się pojawią dopiero po wywołaniu getJSON ale co tam klient chce, klient ma smile.gif Ale żeby nie było, zgadzam się z Twoim rozwiązaniem że if(GetChaptersResponse) powinno się znaleźć w funkcji wywoływanej po getJSON.


--------------------
Go to the top of the page
+Quote Post
erix
post
Post #10





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




http://eriz.pcinside.pl/weblog/ajax-w-jque...script-218.html


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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: 20.08.2025 - 14:11