AJAX POST, Aktualne dane z pola input |
AJAX POST, Aktualne dane z pola input |
10.12.2017, 01:11:33
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
|
|
|
10.12.2017, 01:15:57
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
|
|
|
10.12.2017, 01:20:19
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
|
|
|
10.12.2017, 01:29:32
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ź.
|
|
|
10.12.2017, 01:35:47
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 |
|
|
10.12.2017, 01:40:48
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 Nie rozumiem po co teraz masz jedno zdarzenie wewnątrz drugiego. Wyrzuć kompletnie to przypisywanie do zmiennej topcio. Nie potrzebujesz jej, topciu Ta zmienna w momencie przyjścia odpowiedzi i tak nie musi wcale mieć prawidłowej wartości. Rozumiem Twój tok myślenia. Pewnie wydaje Ci się, że zmienna będzie pamiętała wartość pola z momentu wysłania requestu AJAX-owego. Niestety tak to nie działa i zmienna zostanie odczytana z aktualną wartością tak czy siak. Czyli jest po prostu zbędna, a wartość zmiennej z momentu wysłania requesta AJAX-owego odczytaj tak:
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. |
|
|
10.12.2017, 01:59:38
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
|
|
|
10.12.2017, 02:02:09
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 |
|
|
10.12.2017, 02:22:52
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 |
|
|
10.12.2017, 02:28:49
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ł.
|
|
|
10.12.2017, 02:33:04
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ł dziś już nie mam siły, oczy mi odmawiają posłuszeństwa. |
|
|
10.12.2017, 02:37:39
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
|
|
|
10.12.2017, 17:46:24
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ć.
|
|
|
10.12.2017, 18:12:49
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?
|
|
|
10.12.2017, 18:15:48
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 |
|
|
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.
|
|
|
10.12.2017, 18:44:28
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ś
|
|
|
10.12.2017, 18:48:32
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: 26.09.2024 - 20:13 |