Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] sprawdzanie błędów w formularzu, trochę bardziej skomplikowane
--Asia--
post
Post #1





Goście







Witajcie,
mam formularz, w którym jednym z elementów są trzy pola: element, odniesienie_temu i odniesienie_lata.

Jest miejsce na 15 elementów (opcjonalnie, obowiązkowy jest tylko pierwszy, czyli reszta może być dalej zupełnie pusta), czyli element2, odniesienie_temu2 i odniesienie_lata2, itd.

Mam problem z napisaniem odpowiedniego algorytmu sprawdzania poprawności pól, bo nie wystarczy proste sprawdzenie czy nie ma pustych pól.
Poprawne wypełnienie to element oraz odniesienie_temu lub odniesienie_lata (ale nie oba odniesienia, ani nie oba puste). Wszystkie inne opcje to błąd.

Tak opisałam te zasady, dokładając do tego pętlę, żeby sprawdzało po kolei każdą linię formularza

  1. for ($k=1; $k<=15; $k++)
  2.  
  3. if
  4. (((${"element".$k}) && ((empty(${"odniesienie_temu".$k})) && empty(${"odniesienie_lata".$k}))) //pierwszy pelny, reszta puste
  5. || ((${"element".$k}) && ((${"odniesienie_temu".$k}) && (${"odniesienie_lata".$k}))) //wszystkie pelne
  6. || ((empty(${"element".$k})) && ((${"odniesienie_temu".$k}) || (${"odniesienie_lata".$k})))) //pierwszy pusty, reszta pelna
  7.  
  8.  
  9. {
  10. $errors[] = 'Wypełnij odpowiednio tabelę.';
  11. }
  12.  



Dla innych pól, gdzie wystarcza sprawdzenie, czy nie jest puste, kod sprawdzający i wypisujący błędy działa, więc problem jest w powyższym. Niektóre prawidłowe wypełnienia przyjmuje, a inne traktuje jako błąd. A ja, zupełny przedszkolak, nie wiem czemu... opis na operatorach leży? pętla zła? Proszę o pomoc.
Jeśli ktoś chce zobaczyć jak to wygląda na żywca, to tu jest testowe: http://joanna.website.pl/testy

Mam nadzieję, że wszystko opisałam w miarę jasno...
dzięki.

Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 21.08.2025 - 12:00