Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JavaScript] Validacja formularzy
Forum PHP.pl > Forum > Przedszkole
owned
Witam!
Jak pogodzić action='.php' z onSubmit ? Można zrobić tak aby najpierw sprawdzone zostały pola przez JS a następnie potem wywołane zostało action='.php' ? Co jeśli użytkownik ma wyłączoną obsługę JS. Prosze o pomoc
Pawel_W
onsubmit="return validateForm(this)"

jeżeli js wyłączony, a jeżeli nie to wykona się funkcja

w funkcji dajesz return true; jeżeli jest poprawny, jeżeli nie to return false winksmiley.jpg
vokiel
Zasadniczo walidacja formularzy może odbywać się dwojako - po stronie przeglądarki -js oraz po stronie serwera - skrypt php.
Polecam wykonywanie jej w obu przypadkach. Sprawdzanie po stronie przeglądarki daje wiele plusów, jednak można w nią zaingerować, zatem koniecznością jest tak czy inaczej sprawdzenie poprawności po stronie skryptu php.

Domyślnie najpierw wywołuje się sprawdzanie po stronie przeglądarki (ponieważ strona działa właśnie w przeglądarce), następnie przeglądarka (po poprawnym zweryfikowaniu formularza) przesyła go do skryptu php, w którym następuje ponowne sprawdzenie.

Jeśli użytkownik ma wyłączone js (2-3% ?) to sprawdzanie po stronie przeglądarki nie zadziała, dlatego tak ważne jest sprawdzanie po stronie serwera - tego nie da się od strony użytkownika wyłączyć.

Pozdrawiam
owned
Cytat(Pawel_W @ 24.08.2009, 22:33:54 ) *
onsubmit="return validateForm(this)"

jeżeli js wyłączony, a jeżeli nie to wykona się funkcja

w funkcji dajesz return true; jeżeli jest poprawny, jeżeli nie to return false winksmiley.jpg


To action='.php' tez mam zamieszczać ? Mógłbyś mi pokazać strukturę <form> ? Prosiłbym o wyjaśnienie tej funkcji na jakimś przykładzie.
Pawel_W
robisz normalny formularz i po prostu doklejasz do niego zdarzenie onsubmit winksmiley.jpg
owned
Cytat(Pawel_W @ 24.08.2009, 22:33:54 ) *
w funkcji dajesz return true; jeżeli jest poprawny, jeżeli nie to return false winksmiley.jpg


Chodzi mi o przykład tego sposobu smile.gif
Pawel_W
  1. <script type="text/javascript">
  2. function validateForm(obj)
  3. {
  4. if(costam)
  5. return true;
  6. else
  7. return false;
  8. }
  9. <form action="jakis_plik" method="post" onsubmit="return validateForm(this)">
  10. // formularz
  11. </form>


if(costam) to oczywiście jakiś warunek, zależy co chcesz sprawdzać winksmiley.jpg
owned
Nie działa. Przeładowana jest strona do action='.php' i tyle.
Pawel_W
no to może pokażesz swój skrypt?
owned
[PHP] pobierz, plaintext
  1. <script type="text/javascript">
  2. var imie_nazwisko = document.forms ['formularz'].imie_nazwisko.value;
  3. //no i tutaj Twoja funkcja gdzie if(imie_nazwisko==''){...
  4. </script>
  5. <form name="formularz" action="index.php" method="post" onsubmit="return validateForm(this);">
  6. <input type="text" name="imie_nazwisko"/>
  7. <input type="submit" value="Wyślij"/>
  8. </form>
[PHP] pobierz, plaintext

Chcę po prostu sprawdzić java scriptem przed przeładowaniem strony do index.php, czy pole jest puste.
vokiel
  1. <script type="text/javascript">
  2. function validateForm(form){
  3. var imie_nazwisko = document.forms ['formularz'].imie_nazwisko.value;
  4. if (imie_nazwisko.length<5){
  5. return false;
  6. }else{
  7. return true;
  8. }
  9. }
  10. <form name="formularz" action="index.php" method="post" onsubmit="return validateForm(this);">
  11. <input type="text" name="imie_nazwisko"/>
  12. <input type="submit" value="Wyślij"/>
  13. </form>
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.