![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 29.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Natknalem sie na pewien problem, ktorego nie moge przeskoczyc. Mianowicie, nie przekazuje mi wartosci z funkcji do zmiennej globalnej. A dokładnie nie chce mi przekazac zmiennej z funkcji 'pobrane_dane_z_db' do funkcji 'wyswietl_wspolrzedne'.Doprawdy nie wiem jak to rozwiazac. Gdzieś musi być mój błąd logiczny, ale nie wiem gdzie. Prosze o sugestie.
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 12 Dołączył: 14.01.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) ![]() ![]() |
W ogóle jakoś to źle skonstruowane,powinno być mniej więcej:
Cytat var wspolrzedne_punktow = [];
$(document).ready(function (){ $.getJSON( 'inc/cls_pobierz_dane_z_db.php?jsoncallback=?',pobrane_dane_z_db(jakis_parametr)); wyswietl_wspolrzedne(); function pobrane_dane_z_db(var dane) { $.each(dane, function(i,item){ wspolrzedne_punktow[i] = new Array( item.wspolrzedne_dlugosc, item.wspolrzedne_szerokosc ); }); return jakis_wynik; } function wyswietl_wspolrzedne() { $('<p>').text( wspolrzedne_punktow.lenght ).appendTo('#test'); } }); Ten post edytował Niktoś 29.04.2012, 13:26:42 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 29.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za pomoc. Jednak koledzy chyba nie zwrócili uwagi, iż skrypt wykorzystuje JQuery. Dlatego zaproponowana zmiany nie dosyć ze nie pomogły, to jeszcze wysypały cały skrypt (IMG:style_emoticons/default/smile.gif)
('p') nie może być zastosowane. Musi być ('<p>') gdyż nawiasy klamrowe określają znacznik. ZAstosowanie propozycje od Niktośia tez nie wchodzą w grę, gdyż funkcja getJson przekazuje parametr niejawnie. Doprawdy nie wiem w czym problem. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Funkcja wyswietl_wspolrzedne wywoływana jest zanim dane zostaną pobrane. Wynika to z "natury" JavaScriptu. Trzeba zatem uruchomić funkcję wyswietl_wspolrzedne w odpowiednim momencie, czyli wewnątrz funkcji będącej callback-iem jQuery-owej metody .getJSON (czyli funkcji pobrane_dane_z_db), albo też uczynić funkcję wyswietl_wspolrzedne callback-iem funkcji pobrane_dane_z_db (co w sumie sprowadza się do tego samego). Szukaj pod hasłem callback.
Ten post edytował mortus 29.04.2012, 20:41:54 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 29.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
Masakra. Ale się nameczylem z tym callbackiem. Funkcja getJson jest asynchroniczna i nie mozna zwrocic danych za pomoca zwyklego return. Dlatego trzeba zwracac dane za pomoca callback. Dzieki i pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 15:35 |