![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 30.03.2014 Skąd: Bełchatów Ostrzeżenie: (0%) ![]() ![]() |
Witam. Męczę się z jednym problemem. Otóż na podstawie poradnika swtorzyłem bardzo prostą grę via www, same podstawy, praca trening itp. W osobnym divie mam umieszczone wyciągnięte z bazy danych statystyki.
Problem polega na tym iż po dokonaniu wpisu w bazie danych, przypuscmy ktoś kliknie "zdejmij broń" strona się przeładuje, borń się zdejmie, ale statystyki pozostaną niezmienione, dopiero po kolejnym odświeżeniu statystyki zostaną wczytane już zmienione. strona stoi pod adresem lifetime.cba.pl. Konto na którym można sprawdzic działanie login- test haslo - test z tym, że zaznaczam nie jest to gra, a szablon cwiczeniowy wykonany z kursu, prosze nie hejtowac ![]() ![]() Proszę o pomoc, pozdrawiam. ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Wymuś przeładowanie strony po akcji albo zainteresuj się ajaxem
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 30.03.2014 Skąd: Bełchatów Ostrzeżenie: (0%) ![]() ![]() |
Wymuszenie przeładowania strony bym musiał dac po kazdej czynnosci wpisu do bazy danych tak?
o jquery czytałem troche, ale niebardzo wiem jak da zapytanie że po zmianie w bazie danych rób coś tam. Jest takowe zapytanie? Ten post edytował P4nch0 30.03.2014, 12:58:25 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Cytat Wymuszenie przeładowania strony bym musiał dac po kazdej czynnosci wpisu do bazy danych tak? Tak Cytat o jquery czytałem troche, ale niebardzo wiem jak da zapytanie że po zmianie w bazie danych rób coś tam. Jest takowe zapytanie? Wysyłasz ajaxem żądanie, w PHP robisz jakąś akcję np. zapisujesz dane do bazy, pobierasz ile teraz złota ma gracz i wstawiasz na stronie wynik |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 30.03.2014 Skąd: Bełchatów Ostrzeżenie: (0%) ![]() ![]() |
No tak, ale to musiałbym wtedy w bazie zrobic jakąs tabele liczaca zmiany albo cos i również po każdym działaniu php dodawac odpowiednia komende i wtedy ajaxem sprawdzac czy jest zmiana. Czy czegos nie kmninię? ;p
Czy jest jakas bezposrednia komenda wypluwająca, że była jakaś zmiana w bazie danych którą bezpośrednio można sprawdzic? Jeśli możesz rzuc jakiś przykład komend to załapie i pokombinuje ![]() dzięki za dotychczasowe odpowiedzi ![]() EDIT Poczytałem trochę o ajaxie i doszedłem do wniosku ze musiało by się to opierac o ciągłe co kilka sekund sprawdzanie czy zmienio wpis w bazie danych, mam rację? Skoro tak to pewnie mocno obciąża stronę prawda? Więc chyba lepszym sposobem będzie napisanie funkcji odświeżającej diva i wklejenie jej po każdym wpisie do bazy danych. Jeśli nie mam racji prosze o podpowiedź. Ten post edytował P4nch0 31.03.2014, 07:55:56 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Cytat Poczytałem trochę o ajaxie i doszedłem do wniosku ze musiało by się to opierac o ciągłe co kilka sekund sprawdzanie czy zmienio wpis w bazie danych, mam rację? Skoro tak to pewnie mocno obciąża stronę prawda? Nie, tylko jak gracz cos kupi itd. to dajesz mu np. broń ale zabierasz złoto, zwracasz ile ma teraz złota i tyle. Jak nie chcesz ajaxa to daj po prostu header refresh po zapytaniu co mu zabiera kase Ten post edytował Turson 31.03.2014, 07:56:23 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 30.03.2014 Skąd: Bełchatów Ostrzeżenie: (0%) ![]() ![]() |
A co np ze zdejmowaniem i zakładaniem przedmiotów? też edytują statystyki, pozniej może napisze coś zwiekszające hp i expa co również może nie opierac się na złocie. Ajaxa bym się chętnie nauczył bo jest przydatny, tylko nie wiem jak to ugryźc. Dzięki za cierpliwośc ;p
Ten post edytował P4nch0 31.03.2014, 08:08:56 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Więc po prostu wymuś odświeżenie strony i będzie najprościej
![]() |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 335 Pomógł: 34 Dołączył: 9.11.2005 Skąd: Wrocław Ostrzeżenie: (10%) ![]() ![]() |
W jQuery ajax'a używasz w taki sposób:
I dodatkowo robisz zamiast przycisku submit to button o ID button-submit. A w PHP zwracasz sobie ilość złota używająca po prostu echo. W przykładzie dałem adres ajax.php?mod=change. Czyli w PHP robisz to tak:
I ot cała filozofia z ajax'em. Po udanej zwrotce z PHP w DIV'ie o ID div-with-content zmieni Ci się wartość złota. Ten post edytował in5ane 31.03.2014, 09:15:25 -------------------- > > > Tworzenie stron < < <
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Nie prościej trzymać informację o złocie w innym pliku i potem tylko $.load('ile_zlota_mam.php')
![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 1 335 Pomógł: 34 Dołączył: 9.11.2005 Skąd: Wrocław Ostrzeżenie: (10%) ![]() ![]() |
Z tym, że po co mu to, jeśli on zmianę złota będzie robił tylko w momencie wykonania jakiejś czynności. Więc jeśli chce to bez przeładowania strony, to mój przykład będzie idealny.
-------------------- > > > Tworzenie stron < < <
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
O tym też mówię, po kliknięciu przycisku na nowo załadować $.load
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 2 Dołączył: 22.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ja podobny problem rozwiązałem tak, że najpierw operacja dodania, czy usunięcia, następnie wczytanie wyników i wyświetlenie, tak powinieneś dostać wynik po aktualizacji, lecz pozostaje problem w momęcie odświeżenie strony, bo po każdym odświeżeniu operacja dodania czy usunięcia będzie się powtarzać, ja zawsze dodaje przekierowanie na stronę, tak aby nie było zmiennych do wykonywania początkowych operacji.
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 30.03.2014 Skąd: Bełchatów Ostrzeżenie: (0%) ![]() ![]() |
Dziekuje za takie zainteresowanie
![]() in5ane Twoj sposob pewnie by zadzialal, ale wiekszosc operacji na bazie tak jak pisalem nie opiera sie na zlocie, przypuscmy zdjecie tarczy zmienia statystyki ale nie zmienia stanu zlota, przez co polegajac na zlocie nie odswiezy sie tabela. Ilies tak mozna zrobic, ale wlasnie musialbym dodawac po kazdej zmianie w bazie takowa funkcje ![]() dzieki za dotychczasowe odpowiedzi ![]() |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
ja bym się już na Twoim miejscu zainteresował technologia websocket
![]() |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Ale w czym masz jeszcze problem, @in5ane podał Ci mniej więcej jak to ma wyglądać i tego się trzymaj. Co za różnica czy to złoto, zbroja czy kilo pietruszek? PHP czy JS mają umysł i lubią sobie tylko zmieniać ilość złota, czy jak?
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 30.03.2014 Skąd: Bełchatów Ostrzeżenie: (0%) ![]() ![]() |
Okej, mniej więcej się zorientowałem, dziękuję wszystkim
![]() ![]() EDIT Wybaczcie, że męczę pytaniami, ale skoro już jest temat chcialbym dowiedzieć się jak najwięcej ![]() Otóż co sądzicie o tym żeby rozwiązać to pomysłem podobnym do Ilies, czyli przypuśćmy ktoś klika "trenuj jeden punkt siły" skrypt wykonuje akcje, daje wpis do bazy danych po czym przekierowuje do strony trenowania i wypluwa pop upa "trening się powiódł"? Sprawdziłem i w ten sposób ładnie to działa jak i również blokuje możliwość odświeżania i ponowniego wykonywania skryptu, jednak czego boje się najbardziej w pisaniu to przeciążania i tu chciałbym spytać czy takie rozwiązanie nie będzie obciążało strony? |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
operacje na bazie danych zawsze są wąskim gardłem, dlatego napisałem, żebyś sie zainteresował technologią websoketowom, tam masz komunikacje miedzy klientem a serwerem w czasie rzeczywistym i nie musisz odpytywać bazy co chwile, żeby wykonywać jakieś akcje, wystarczy, że pobierzesz dane z niej a potem co jakiś czas puścisz update, w zależności od tego jak będzie to wymagała gra
![]() ![]() |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 30.03.2014 Skąd: Bełchatów Ostrzeżenie: (0%) ![]() ![]() |
Ok, dziękuję Wam
![]() |
|
|
--P4nch0-- |
![]()
Post
#20
|
Goście ![]() |
W jQuery ajax'a używasz w taki sposób:
I dodatkowo robisz zamiast przycisku submit to button o ID button-submit. A w PHP zwracasz sobie ilość złota używająca po prostu echo. W przykładzie dałem adres ajax.php?mod=change. Czyli w PHP robisz to tak:
I ot cała filozofia z ajax'em. Po udanej zwrotce z PHP w DIV'ie o ID div-with-content zmieni Ci się wartość złota. Chciałem Panowie spróbowa tą metodą, jednak gdy otaczam działania w php frazą if ($_GET['change']) przestają działac. Możecie mi przybliżyc jak to dokladniej zastosowac? oraz jak odniesc sie do linku url: 'ajax.php?mod=change', który podał Kolega, troche mam braki, ale to początki ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.04.2025 - 05:57 |