Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]sprawdzanie poprawności danych przy ich wpisywaniu
Forum PHP.pl > Forum > Przedszkole
erjot90
Witam,

mam pytanko do Was. Czy mógłby mi ktoś pomóc jak napisać w javie sprawdzanie danych w formularzu np. mam kryteria do hasła ze musi być dłuższe niż 6 znaków to żeby przed przesłaniem do stronki która to ma sprawdzić w php poprawność wprowadzonych danych od razu wywalała błąd typu: Hasło jest nie poprawne. Mam nadzieje że rozumiecie o co mi chodzi.

Dodam że jestem początkującym programistą w javie a na stronach znalezionych w google nic nie moge zakumać sad.gif
Andaramuxo
W javie czy javascript? Jak masz formularz to zrób go w php i sprawdzaj dł. znaków tak:
Kod
if (strlen($_POST['password'])>6) {
wysyła dane }
else {
hasło musi mieć co najmniej 6 znaków
}
erjot90
w php wiem jak to napisać. Chodzi mi o to zeby podczas wpisywania mi sprawdzało długość hasła i od razu wyświetlał się "błąd" w razie napisania małej liczby znaków lub np. napis "dobre hasło" kiedy użytkownik wpisze np. 7 znaków.
Andaramuxo
Aha, jak bez przeładowywania strony to chyba AJAX, ale mogę się mylić.
erix
Cytat
Dodam że jestem początkującym programistą w javie a na stronach znalezionych w google nic nie moge zakumać

A którego JDK używasz? snitch.gif



Cytat
małej liczby znaków lub np. napis "dobre hasło" kiedy użytkownik wpisze np. 7 znaków.

google: form validation

edit@~slightyboy: a nie mógł sam poszukać...?
erjot90
a wiesz może jak to napisać w AJAX? albo masz godne polecenia linki w tym temacie?
slightyboy
Po co w tym momencie angażować AJAX? On przyda się dopiero wtedy kiedy będziesz chciał sprawdzić, czy zadeklarowana przez użytkownika nazwa lub adres email nie istnieją już w bazie danych. Co do walidacji formularza, za pośrednictwem Google znajdziesz wiele tutoriali i poradników, ale w skrócie (olbrzymim) wygląda to tak:

Kod HTML:
  1. <input type="password" name="password" onChange="validatePassword(this);" />


Kod java script:
Kod
function validatePassword(w){
  if(w.value.length <= 6)
    alert('Hasło jest zbyt krótkie!'); // Tutaj umieścić możesz dowolną akcję (wyświetlenie błędu, okienka etc.)
}
erjot90
slightyboy możesz napisać jak właśnie sprawdzić przy pomocy ajaxa czy w bazie nie ma już takiego użytkownika?

i aha jak zrobić żeby ten komunikat wyświetlał się obok inputa?
slightyboy
Kolego, tutaj to już mały kod nie wystarczy, ale mogę podpowiedzieć jak zrobić to krok po kroku (kodu nie przestawię):

1. Skrypt/plik (PHP) który zapytaniem MySQL sprawdza czy użytkownik/email istnieje w bazie. Skrypt zwraca rezultat w postaci XML, JSON, a nawet zwykłego tekstu (ja ostatnio preferuję XML tongue.gif).
2. Skrypt AJAX (warto skorzystać z jakiegoś frameworka, chociażby z polskiego mintAjax - www.mintajax.pl, w dokumentacji znajdziesz wszystko na temat pobierania), który pobiera rezultat z pliku PHP (punkt pierwszy) i odpowiednio reaguje (np. alert('Użytkownik istnieje!')).
3. Na koniec wszystko to podpinasz pod formularz (albo w onSubmit, albo tworzysz oddzielny button do sprawdzania unikalności nazwy/adresu email).

W razie czego służę pomocą na PW (aczkolwiek kodu nie zamierzam pisać za kogoś). smile.gif

Natomiast co do drugiego pytania:
- obok inputa umieść np. element liniowy SPAN (<span></span) o unikalnym identyfikatorze.
- zamiast "alert('Hasło jest zbyt krótkie!');" umieść:

Kod
document.getElementById('unikalnyIdElementuSPAN').innerHTML = 'Hasło jest zbyt krótkie!';

Oczywiście można to również zrobić przy wykorzystaniu DOM, ale w tak prostym przykładzie można posłużyć się "mniej eleganckim" rozwiązaniem (aczkolwiek równie efektywnym).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.