![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie.
Proszę o pomoc, co jest nie tak z poniższym skryptem. W konsoli pokazuje OK, ale POST user_login_test nie przechodzi
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) ![]() ![]() |
no bo jak tego nie zrobię to w konsoli owszem pokazuje się to co jest wpisane w input ale bez ostatniego znaku
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
A po co w ogóle przechowujesz wartość tego pola tekstowego w zmiennej? Nie możesz go na bieżąco odczytywać tam, gdzie jest potrzebny? Pamiętaj, że AJAX działa asynchronicznie i może dłużej trwać niż wpisywanie poszczególnych znaków. Najlepiej jak zwrócisz login jako część response po stronie serwera i na tej podstawie będziesz wiedział czego dotyczyła odpowiedź.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) ![]() ![]() |
poprawiłem
![]()
Masz rację w tym co piszesz. To są moje początki z AJAX i tak sobie próbuję różnych rzeczy to co piszę teraz to chciałem by ajax sprawdzał w bazie czy istnieje dany login, a jak tak to zmienił się div na inny |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Jest lepiej, ale dalej są tu koszmarki
![]() ![]() 1. Wyślij request AJAX-em tak jak teraz. 2. Do odpowiedzi serwera dołącz informację o loginie. 3. W funkcji obsługującej odpowiedź na AJAX, użyj sobie loginu z odpowiedzi. To najbardziej sensowny sposób, żeby wiedzieć jaki był stan pola tekstowego dla danej odpowiedzi. Jeszcze prościej byłoby odczytać dane wejściowe z obiektu XHR dla odpowiedzi, ale nie jestem pewien czy one tam są, chyba niestety nie. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) ![]() ![]() |
No OK, ale co mam wysłać AJAXEM do "../php_function/set_session_variable.php", skoro to ma sprawdzić czy istnieje login wpisany aktualnie w pole input. To AJAX ma się zapytać serwer czy istnieje login, a nie serwer AJAXa.
Chyba że źle rozumuję. plik php wygląda tak
już zakumałem teraz jest tak
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
No właśnie cały trik polega na tym, że wysyłasz login do serwera, ale serwer też zwraca między innymi ten login! Zobacz, tak mogłaby wyglądać przykładowa odpowiedź serwera:
Ważne jest to, żeby zrozumieć jedną rzecz. Teoretycznie nawet jeśli wysyłasz do serwera na przykład najpierw prośbę o sprawdzenie loginu "topci", a za ułamek sekundy "topcio", to serwer może odpowiedzieć w odwrotnej kolejności i musisz być na to przygotowany. Dlatego trzeba wiedzieć czego dana odpowiedź dotyczy. Inaczej narazisz się na nieprawidłową interpretację wyniku. Ten post edytował SmokAnalog 10.12.2017, 02:03:01 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) ![]() ![]() |
a powiedz mi czym to co napisałem wcześniej różni się od tego
Ten post edytował topcio 10.12.2017, 02:23:23 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Głównie tym, że to jest surowy JavaScript, a to Twoje to jQuery. Sam schemat działania bardzo podobny i popełnia ten sam błąd - zakłada, że w momencie przyjścia odpowiedzi, stan pola tekstowego się nie zmienił.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) ![]() ![]() |
OK, wielkie dzięki za pomoc.
Jutro będę kminił jak zrobić to co napisałeś bym zrobił ![]() |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
No to dobranoc i daj jutro znać jak idzie. Ja coś nie mogę się zmusić do spania dzisiaj
![]() |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) ![]() ![]() |
Jeszcze nie kminiłem, dopiero usiadłem. Wolna niedziela
![]() Ale usiadłem i do tego co już miałem dopisałem co poniżej. Pomijając fakt o którym pisałeś wcześniej, czy to jest OK, czy masło maślane. Choć działa ![]() Może da się to jakoś uprościć.
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Nie sądzisz, że sprawdzanie poprawności hasła podczas jego wpisywania jest dość egzotycznym pomysłem?
![]() |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) ![]() ![]() |
Jest i owszem, ale jak pisałem wcześniej dopiero się tym bawię i oswajam w ogóle z JS.
Ale fajnie to wygląda ![]() Po za tym, wiesz chyba nic to nie zmienia, bo jak ktoś nie zna loginu ani hasła, to cę będzie siedział w panelu i się bawił w literki. Chyba żaden bot linuxowy tego nie odczyta bo nie obsłuży JSa, chyba że się mylę Ten post edytował topcio 10.12.2017, 18:18:35 |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Można to znacząco uprościć. Zobacz sobie na przykład $.post zamiast $.ajax.
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) ![]() ![]() |
no właśnie czym to się różni, bo już się $.post bawiłem, mam na przykład takie coś
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Różni się tym, że jest bardziej czytelna dla zapytań POST. Jest też $.get. Ja używam $.ajax tylko wtedy, gdy chcę ustawić sporo rzeczy sam, albo kiedy zapytanie musi obsługiwać różne metody HTTP.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 17.06.2024 - 06:07 |