Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Jak zebrać komunikaty błędów validacji z kilku form
borpaw
post
Post #1





Grupa: Zarejestrowani
Postów: 439
Pomógł: 0
Dołączył: 3.06.2010

Ostrzeżenie: (50%)
XXX--


Jak zebrać komunikaty błędów validacji z kilku form tzn:

mam np. jedną stronę - formularz, który jest złożony z kilku form, każda forma ma swój buton-submit
oprócz tego jest jeszcze na końcu formularza powiedzmy buton "przejdź dalej" ale nie powinno być można przejść
dalej jeśli wszystkie formy nie są zvalidowane pozytywnie.

I taki zbiorczy komunikat błędów chciałbym wyświetlać na górze strony (często widać takie rozwiązania na stronach)

Czy taka budowa formularza umożliwia zrobienie tego? czy może inaczej trzeba to zaprojektować? Czy przy wielu formach jest to możliwe do zrobienia?
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Za pomocą PHP - nie, za pomocą JS - tak.
Go to the top of the page
+Quote Post
borpaw
post
Post #3





Grupa: Zarejestrowani
Postów: 439
Pomógł: 0
Dołączył: 3.06.2010

Ostrzeżenie: (50%)
XXX--


najlepiej PHP, ale jeśli się nie da to proszę o inne sugestie
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Już wspomniałem, w PHP się nie da, bo musisz wysłać formularz, żeby utworzyć zmienne, a kilku form-ów naraz nie wyślesz. Tylko za pomocą JS możesz zwalidować te pola "w locie". Więc moja sugestia - użyj JS (nie mówię stricte o JS, może to być również jakaś biblioteka).
Go to the top of the page
+Quote Post
borpaw
post
Post #5





Grupa: Zarejestrowani
Postów: 439
Pomógł: 0
Dołączył: 3.06.2010

Ostrzeżenie: (50%)
XXX--


Ok dzięki, też dochodzę do tego wniosku,

Czyli zrobić to tak mniej więcej (w pseudokodzie):

  1.  
  2. <form 1></form>
  3. <form 2></form>
  4. <form 3></form>
  5.  
  6. <script>
  7.  
  8. function submitAll(){
  9. submit form 1
  10. submit form 2
  11. submit form 3
  12. }
  13.  
  14. </script>
  15.  


wtedy wyślę formy po kolei i jeśli któraś nie przejdzie walidacji to zgłosi błąd

Czy tak to rozwiązać?
Go to the top of the page
+Quote Post
c1chy
post
Post #6





Grupa: Zarejestrowani
Postów: 72
Pomógł: 16
Dołączył: 21.06.2013

Ostrzeżenie: (0%)
-----


nie, jak zrobisz pierwszy submit to reszta się nie wyśle bo strona się odświeży.

chyba że przez submit masz na myśli wysłanie danych za pomocą AJAX to wtedy mniej więcej tak. Tylko najpierw wysyłasz i sprawdzasz odpowiedź jak są błędy to wyświetlasz jak nie ma to wysyłasz drugą itd.
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #7





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Masz dajmy na to takie formy:

  1. <form1><input11><input12></form1>
  2. <form2><input21><input22></form2>
  3. <form3><input31><input32></form3>


Sprawdzasz po kolei wszystkie inputy za pomocą JS i jeśli wszystkie pola zwaliduje poprawnie to lecisz dalej. Jeśli do walidacji nie jest konieczne łączenie się z bazą to i Ajax nie będzie potrzebny.

  1. function checkAll() {
  2.  
  3. var error = 0;
  4.  
  5. if (input11.value != 'costam') error++;
  6. if (input12.value != 'costam') error++;
  7.  
  8. if (error > 0) return false; else return true;
  9.  
  10. }


Coś w ten deseń.
Go to the top of the page
+Quote Post
c1chy
post
Post #8





Grupa: Zarejestrowani
Postów: 72
Pomógł: 16
Dołączył: 21.06.2013

Ostrzeżenie: (0%)
-----


Dodałbym tylko, że i tak na samym końcu zanim zapiszesz te dane gdzieś, musisz je zwalidować raz jeszcze po stronie serwera. Na wypadek gdyby użytkownik coś kombinował z javascriptem lub w ogóle go pominął.
Go to the top of the page
+Quote Post
markonix
post
Post #9





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Jaki sens ma tworzenie 3 formularzy skoro one tworzą jedną logiczną całość (wnioskuje po "Przejdź dalej").
To ma tylko sens gdy te 3 formularze są oddzielne - służą do czegoś innego, ale wtedy oczywistym jest, że przy submit walidowany jest ten wysłany, a nie wszystkie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.09.2025 - 06:30