Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] walidacja formularza- cała tablica POST
Forum PHP.pl > Forum > Przedszkole
lnn
witam

otoz kombinuje juz troche czasu, i nie chce sprawdzac 10 zmiennych $_POST poprzez wypisywanie kazdej, zapewne istnieje jakis sposob zeby to uproscic i sprawdzic cala tablice post czy zawiera wartosci? tongue.gif

drugie pytanie to jak zrobic zeby formularz sie nie wyslal po wcisnieciu buttona submit tylko jesli wystapia bledy np walidacyjne to zeby w action:
  1. <form action="strona.php">
nie było nic tongue.gif == nie nastapilo przeladowanie na kolejna strone?

z gory dzieki za odpowiedzi smile.gif
cim
Witam,

ad. 1. jeżeli chcesz tylko sprawdzić czy są wartości w $_POST i jakie to polecam:
  1. print_r($_POST);


ad. 2. w tagu <form> możesz podać atrybut 'onsubmit' i nazwę funkcji w JavaScript, która zostanie wywołana po wciśnięciu przycisku 'Wyślij' lub innego zdefiniowanego jako 'submit' dla tego formularza'. Zdefiniowana funkcja zostanie wtedy wywołana, sprawdzi poprawność i jeżeli wszystko będzie ok to wyśle formularz.

Pozdrawiam
wookieb
Cytat(lnn @ 25.12.2009, 23:55:54 ) *
otoz kombinuje juz troche czasu, i nie chce sprawdzac 10 zmiennych $_POST poprzez wypisywanie kazdej, zapewne istnieje jakis sposob zeby to uproscic i sprawdzic cala tablice post czy zawiera wartosci? tongue.gif

array_map i odwolanie do funkcji walidujacej

Cytat
drugie pytanie to jak zrobic zeby formularz sie nie wyslal po wcisnieciu buttona submit tylko jesli wystapia bledy np walidacyjne to zeby w action:


java script:
[JAVASCRIPT] pobierz, plaintext
  1.  
  2. <script type="text/javascript">
  3. function validuj()
  4. {
  5. // tutaj sobie walidujesz formularz
  6. return false; // jezeli nei ok
  7. return true; // jezeli ok
  8. }
  9. </script>
  10. <form onsubmit="return validuj();">
[JAVASCRIPT] pobierz, plaintext
lnn
Cytat(cim @ 26.12.2009, 00:02:01 ) *
Witam,

ad. 1. jeżeli chcesz tylko sprawdzić czy są wartości w $_POST i jakie to polecam:


ad. 2. w tagu <form> możesz podać atrybut 'onsubmit' i nazwę funkcji w JavaScript, która zostanie wywołana po wciśnięciu przycisku 'Wyślij' lub innego zdefiniowanego jako 'submit' dla tego formularza'. Zdefiniowana funkcja zostanie wtedy wywołana, sprawdzi poprawność i jeżeli wszystko będzie ok to wyśle formularz.

Pozdrawiam

troche błędnie mnie zrozumiano, print_r nie zwraca 0 jesli jest pusta, ja nie chce ich wyswietlac tylko walidowac czy sa puste,
co do 2 to nie bede walidował w JS tylko chce w PHP i chce zrobic tak, że jeśli pole jest puste to zeby wyskakiwała ponizej pola podpowiedz jak powinna wygladac prawidłowo wprowadzona wartosc...
darko
1. Zakładając że funkcje walidujące istnieją i zwracają true jeśli wartość przeszła walidację, w przeciwnym razie false, to może coś takiego:
  1. foreach($_POST as $k => $v) {
  2. if(preg_match("/email/", $k) != 0) $email = validateEmail($v);
  3. if(preg_match("/pesel/", $k) != 0) $pesel = validatePesel($v);
  4. // itd.
  5. }
  6. // następnie
  7. if($email && $pesel && ...) {
  8. // ok
  9. } else {
  10. // error
  11. }


2.
  1. <form action="..." id="test" name="test" ... onsubmit="return validate();" ... >
  2. (...)
  3. <script type="text/javascript">
  4. /*
  5. tu walidujesz pola wyciągane po id formularza za pomocą document.getElementById('test').NAZWA_POLA_FORMULARZA.value
  6. lub poprzez odwałanie document.NAZWA_FORMULARZA.NAZWA_POLA_FORMULARZA.value
  7. czyli w powyższym przykładzie document.test.NAZWA_POLA_FORMULARZA.value
  8. jeśli wszystko ok:
  9. return true
  10. jeśli nie:
  11. return false
  12. formularz nie zostanie wysłany
  13. dalej możesz wyłapać sobie, które pola nie przeszły walidacji i zmienić ich styl np. dodać czerwony border + info co jest nie tak
  14. Dodatkowo możesz też zmienić action poprzez odwołanie document.getElementById('test').action = "NOWA_AKCJA.php";
  15. */
Adis92
Co do wysyłania przez js to pamiętajmy że nie każdy musi mieć włączoną obsługę js w przeglądarce.
darko
Dlatego też walidujemy dane po stronie php.
cim
Witam,

z pierwszym się zgodzę, bo myślałem, że chcesz tylko "wzrokowo" sprawdzić co Ci z formularza przychodzi bo jest z nim jakiś problem.
Cytat(lnn @ 25.12.2009, 23:55:54 ) *
drugie pytanie to jak zrobic zeby formularz sie nie wyslal po wcisnieciu buttona submit tylko jesli wystapia bledy np walidacyjne to zeby w action nie było nic tongue.gif nie nastapilo przeladowanie na kolejna strone?


Cytat(lnn)
co do 2 to nie bede walidował w JS tylko chce w PHP i chce zrobic tak, że jeśli pole jest puste to zeby wyskakiwała ponizej pola podpowiedz jak powinna wygladac prawidłowo wprowadzona wartosc...


Natomiast nie bardzo rozumiem drugie - chcesz walidować w PHP przed wysłaniem danych na serwer?

Pozdrawiam
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.