Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> 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
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 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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 21:22