Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z przekazaniem danych do zmiennej globalnej, Jquery , JS przekazanie do globalnej
adamski9000
post
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.

  1. var wspolrzedne_punktow = [];
  2.  
  3. $(document).ready(function (){
  4.  
  5. $.getJSON( 'inc/cls_pobierz_dane_z_db.php?jsoncallback=?',pobrane_dane_z_db);
  6. wyswietl_wspolrzedne();
  7.  
  8.  
  9. function pobrane_dane_z_db(dane)
  10. {
  11. $.each(dane, function(i,item){
  12. wspolrzedne_punktow[i] = new Array( item.wspolrzedne_dlugosc, item.wspolrzedne_szerokosc );
  13. });
  14.  
  15. }
  16.  
  17. function wyswietl_wspolrzedne()
  18. {
  19. $('<p>').text( wspolrzedne_punktow.lenght ).appendTo('#test');
  20. }
  21. });
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
mccd
post
Post #2





Grupa: Zarejestrowani
Postów: 58
Pomógł: 12
Dołączył: 14.01.2011

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



  1. $('p').text( wspolrzedne_punktow.lenght ).appendTo('#test');


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





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

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


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
Go to the top of the page
+Quote Post
adamski9000
post
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.
Go to the top of the page
+Quote Post
mortus
post
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
Go to the top of the page
+Quote Post
adamski9000
post
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
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: 22.08.2025 - 15:35