Strona 1 z 2 12 OstatniOstatni
Pokaż wyniki od 1 do 10 z 11

Wątek: [jQuery][AJAX] Pobieranie danych z bazy danych i zapisywanie jako zmienna w JS

  1. #1
    Aktywny
    Dołączył
    Dec 2011
    Posty
    273

    Domyślnie [jQuery][AJAX] Pobieranie danych z bazy danych i zapisywanie jako zmienna w JS

    Witajcie,

    Problem jest taki, że próbuje dynamicznie wyciągnąć z bazy danych pozycje gracza. Więc robię coś w stylu:
    Kod:
    var user_pos_x, user_pos_y;
    
    function put_player(){
    	// wczytujemy pozycję gracza `x`
    	jQuery.ajax(
    		{
    			method: "POST",
    			data:   "action=getUserPosX",
    			url:    "ajax.php",
    			// jeżeli się udało
    			success: function(data){
    				user_pos_x = data;
    				alert(data);
    			}
    		}
    	);
    
    	// wczytujemy pozycję gracza `y`
    	jQuery.ajax(
    		{
    			method: "POST",
    			data:   "action=getUserPosY",
    			url:    "ajax.php",
    			// jeżeli się udało
    			success: function(data){
    				user_pos_y = data;
    			}
    		}
    	);
    } // end put_player();
    A potem:
    Kod:
    // wyciąganie pozycji gracza
    put_player();
    
    alert(user_pos_x);
    Jak dobrze się przyjrzycie kodowi, to zobaczycie, że w pierwszym żądaniu AJAX jest alert, wyświetla on dobrą pozycję: 5. Alert na końcu kodu wyświetla "undefined". Czyli zmienną która została podana na początku kodu... Czyli nie zapisuje mi wyniku z żądania AJAX.

  2. #2
    Aktywny
    Dołączył
    Jul 2008
    Posty
    866

    Domyślnie

    Po pierwsze, weź pobieraj obie wartości za jednym zamachem, bo to aż razi..
    Po drugie, może nie wykonuje się kod php dla Y? //chociaż pewnie wtedy by nic nie wyświetlało, na pewno nie undefined..
    Ostatnio edytowane przez Drikam ; 09-07-2013 o 16:18

  3. #3
    Aktywny
    Dołączył
    Dec 2011
    Posty
    273

    Domyślnie

    Jak póki co sprawdzam wartość x i x mi nie działa (y zresztą też nie). Zrobiłem 2 żądania bo na początku myślałem, że błąd jest w samym żądaniu, dlatego tutaj są 2 a nie jedno.

  4. #4
    Zarejestrowany Awatar writen
    Dołączył
    May 2010
    Posty
    54

    Domyślnie

    Może po prostu niech funkcja zwraca tablicę z pozycją x i y. (return)

  5. #5
    Aktywny
    Dołączył
    Jul 2008
    Posty
    866

    Domyślnie

    Kod:
    var user_pos_x, user_pos_y;
    
    function put_player(){
        // wczytujemy pozycję gracza `y`
        jQuery.ajax(
            {
                method: "POST",
                data:   "action=getUserPosY",
                url:    "ajax.php",
                // jeżeli się udało
                success: function(data){
                    user_pos_y = data;
                }
            }
        );
    
        // wczytujemy pozycję gracza `x`
        jQuery.ajax(
            {
                method: "POST",
                data:   "action=getUserPosX",
                url:    "ajax.php",
                // jeżeli się udało
                success: function(data){
                    user_pos_x = data;
                    alert(data);
                }
            }
        );
    } // end put_player();
    A odwrócenie tego coś da? Może wykonuje się pierwsze i jakimś cudem traktuje to jak return. Bo przynajmniej tak to wygląda. Kod php na pewno jest dobry?

    Tak czy inaczej, słabo, że 2 zapytania na to zużyjesz lub nawet więcej.

  6. #6
    Zasłużony Awatar Rodkan
    Dołączył
    Mar 2011
    Posty
    1,465

    Domyślnie

    Należy dodać parametr async:true bodajże...

    Edycja: async:false, moja wina.
    Ostatnio edytowane przez Rodkan ; 09-07-2013 o 19:42

  7. #7
    Aktywny
    Dołączył
    Dec 2011
    Posty
    273

    Domyślnie

    Kod PHP na 100% jest dobry bo alert w funkcji zwrca dobre dane, nie wiem czy odwrócenie coś da i nie sprawdzę bo jestem na tablecie, ale zakładam, że wynik będzie ten sam.

  8. #8
    Aktywny
    Dołączył
    Jul 2008
    Posty
    866

    Domyślnie

    No, więc możliwe, że jest jakiś problem z dwoma ajaxami jednocześnie czy coś. Rodkan coś tam gada.

    Oraz..

    Naprawdę to razi.

    Słyszałem, że masz wartości dodatnie x i y.
    Dlatego weź pobierz od razu 2 za jednym razem.

    zwróc

    X-Y
    dwie wartości oddzielone seperatorem '-'.

    var tmp=wynik.split("-");
    user_pos_x = tmp[0];
    user_pos_y = tmp[1];

    działa jak explode w php.

  9. #9
    Aktywny
    Dołączył
    Dec 2011
    Posty
    273

    Domyślnie

    Eh, wiem o tym, tłumaczyłem już czemu są 2 żądania AJAX.

  10. #10
    Aktywny
    Dołączył
    Jul 2008
    Posty
    866

    Domyślnie

    Dopiero teraz zrozumiałem o co chodzi..

    Może coś z globalnymi/kolaknymi zmiennymi.. Albo jakiś problem jquery z underscoreami "_".. Rzucam pomysłami na ślepo, niby powinno działać.
    Ostatnio edytowane przez Drikam ; 09-07-2013 o 21:07

Strona 1 z 2 12 OstatniOstatni

Informacje o wątku

Użytkownicy przeglądający ten wątek

Aktualnie 1 użytkownik(ów) przegląda ten wątek. (0 zarejestrowany(ch) oraz 1 gości)

Podobne wątki

  1. Zapisywanie do bazy danych text'u który jest zmienną i wyświetlanie jej zawartości.
    Przez Bartek w dziale Problemy przy tworzeniu własnej gry
    Odpowiedzi: 9
    Ostatni post / autor: 22-02-2013, 10:30
  2. jQuery - ajax brak zwrotu danych
    Przez Speedy w dziale JavaScript/AJAX
    Odpowiedzi: 3
    Ostatni post / autor: 28-05-2010, 15:37
  3. pobieranie/update danych z/do bazy
    Przez mex w dziale Budowa gry via www
    Odpowiedzi: 5
    Ostatni post / autor: 28-06-2009, 19:54
  4. pobieranie danych z bazy
    Przez mex w dziale Race
    Odpowiedzi: 5
    Ostatni post / autor: 28-06-2009, 07:15
  5. Pobieranie danych z bazy
    Przez gylopl w dziale Budowa gry via www
    Odpowiedzi: 15
    Ostatni post / autor: 21-05-2009, 00:31

Zakładki

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •