Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]Sprawdzanie czy pola formularza (w pętli foreach) zostały wypełnione - jak?
x X x
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 21.01.2014

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


Otóż mam taki oto formularz:
  1. <?php foreach($Result_stud as $P_stud) : ?>
  2. <form class="validate" method="post" action="Passes/PassesAdded/">
  3. <tr>
  4. <th name="student" width="120px">
  5. <?php echo $P_stud['s_id']; ?> - <?php echo $P_stud['s_name']; ?>
  6. <input type="hidden" name="s_id[]" value="<?php echo $P_stud['s_id']; ?>"/>
  7. </th>
  8.  
  9. <input type="hidden" name="stud_cl_id[]" value="<?php echo $P_stud['stud_cl_id']; ?>"/>
  10.  
  11. <!--pobieranie oceny z bazy ! -->
  12. <td name="ocena" width="40px">
  13. <input type="text" name="pass[]" style="height: 20px" value="<?php echo (isSet($_POST['pass'])) ? $_POST['pass'] : '' ?>"/>
  14. </td>
  15.  
  16. <td name="data" width="130px">
  17. <input type="date" placeholder="RRRR-MM-DD" name="pass_date[]" style="height: 22px" value="<?php echo (isSet($_POST['pass_date'])) ? $_POST['pass_date'] : '' ?>"/>
  18. </td>
  19.  
  20. <td name="komentarz">
  21. <input type="text" name="comments[]" style="height: 20px" value="<?php echo (isSet($_POST['comments'])) ? $_POST['comments'] : '' ?>"/>
  22. </td>
  23. </tr>
  24. <?php endforeach; ?>
  25. <tr class="line">
  26. <td colspan="5"><input type="submit" class="button" value="Dodaj"/>
  27. </tr>
  28. </form>

Wyświetla on X studentów dla wybranego wcześniej przedmiotu. Jeżeli wpiszę ocenę wybranemu studentowi chciał bym aby system wymagał też wpisania daty i komentarza. Nie mogę niestety skorzystać z opcji:

  1. required="required"


ponieważ formularz jest w pętli foreach i wtedy nie puści zapisania, jeżeli WSZYSTKIE pola nie będą wypełnione. Chciał bym, aby sprawdzane były tylko pola tych studentów, u których coś zostało już wpisane (np. wpisałem ocenę, nie wpisałem daty, wpisałem komentarz - system informuje, że data nie została wpisana i należy ją wpisać). Da się to zrobić? Może jakiś skrypt?

Ten post edytował x X x 21.03.2014, 00:19:58
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Turson
post
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


  1. <form action="" method="post">
  2. <input type="text" name="imie">
  3. <input type="text" name="nazwisko">
  4. <input type="text" name="wiek">
  5. <input type="submit" name="wyslij" value="wyslij">
  6. </form>
  7. <?php
  8. if(isset($_POST['wyslij'])){
  9. $errors = null;
  10. foreach($_POST as $k=>$v){
  11. if($k!=="wyslij"){
  12. $v = trim($v);
  13. if(empty($v)) $errors .= "Pole {$k} nie może być puste.<br>";
  14. }
  15. }
  16. if(!is_null($errors)) echo $errors;
  17. else{
  18. echo "OK!";
  19. }
  20. }
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: 28.12.2025 - 02:10