Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Walidacja formularza
imie_nazwisko
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 6.08.2010

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


Witam,
Zrobilem walidacje formularza, która ma sprawdzac czy uzytkownik wprowadzil wartosci we wszystkie pola formularza.
Walidacja dziala jesli wszytskie elementy tablicy row mają "Yes".

W przypadku gdy w row[1]="No" chcialbym aby zostały sprawdzone pozostale dwa pola plec oraz kraj. Niestety tak się nie dzieje, formularz przechodzi gdy wszytskie pola sa puste


  1. <script LANGUAGE= "JavaScript" type= "text/javascript">
  2. function validateForm(rejestracja){
  3.  
  4. var tekst='';
  5. if (rejestracja.plec.value==""){tekst=tekst+"- plec\n";}
  6. if (rejestracja.zawod.value==""){tekst=tekst+"- zawód\n";}
  7. if (rejestracja.kraj.value =="" ){tekst=tekst+"- kraj\n";}
  8. if (tekst!="") {alert ("Błąd #882: \nNie uzupełniłeś następujących pól: \n\n"+tekst);
  9. return false;
  10. } else {
  11. return true;
  12. }
  13. }
  14.  


  1. <form class="form-horizontal" method="post" onsubmit="return validateForm(this);">
  2. <fieldset>
  3. <legend>Close concession #<?php echo $nr; ?></legend><br>
  4.  
  5. <?php
  6. if ($row[0]=='Yes') {
  7. echo '<div class="form-group">';
  8. echo ' <label for="inputPeriod" class="col-lg-5 control-label">Podaj pleć: </label>';
  9. echo ' <div class="col-lg-2">';
  10. echo ' <div class="input-group date">';
  11. echo ' <input maxlength="10" type="text" class="form-control" name="plec" placeholder="" ><span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span>';
  12. echo ' </div>';
  13. echo ' </div>';
  14. echo '</div>';
  15. }
  16.  
  17. if ($row[1]=='Yes') {
  18. echo '<div class="form-group">';
  19. echo ' <label for="inputPeriod" class="col-lg-5 control-label">Podaj zawód: </label>';
  20. echo ' <div class="col-lg-2">';
  21. echo ' <div class="input-group date">';
  22. echo ' <input maxlength="10" type="text" class="form-control" name="zawod" placeholder="" ><span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span>';
  23. echo ' </div>';
  24. echo ' </div>';
  25. echo '</div>';
  26. }
  27.  
  28. if ($row[2]=='Yes') {
  29. echo '<div class="form-group">';
  30. echo ' <label for="inputPeriod" class="col-lg-5 control-label">Podaj kraj: </label>';
  31. echo ' <div class="col-lg-2">';
  32. echo ' <div class="input-group date">';
  33. echo ' <input maxlength="10" type="text" class="form-control" name="kraj" placeholder="" ><span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span>';
  34. echo ' </div>';
  35. echo ' </div>';
  36. echo '</div>';
  37. }

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 807
Pomógł: 1828
Dołączył: 11.03.2014

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


Czekaj, ale ta walidacja ma pośredni związek z warunkami w skrypcie PHP.
W zależności od Yes lub No, drukujesz na ekranie odpowiednie pola w tym skrypcie, a nie robisz ich walidację na poziomie PHP.
W JS sprawdzasz wszystkie pola, nawet jeśli w PHP wydrukujesz tylko jedno.
Albo w JS powinieneś sprawdzać pola, które istnieją, albo w PHP drukować wszystkie.

P.S. Oprócz tego powinieneś zrobić walidację na poziomie PHP, czyli użyć Yes lub No, nie do uwarunkowania drukowania pola, ale właśnie walidacji (w PHP).
Go to the top of the page
+Quote Post

Posty w temacie


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: 8.10.2025 - 08:19