Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]sprawdzenie, czy wypełniono pola formularza - problem
hyhyhy
post
Post #1





Grupa: Zarejestrowani
Postów: 135
Pomógł: 5
Dołączył: 6.02.2011

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


Mam taki problem: mam stronę z dość obszernym formularzem (generator quizu) no i chciałbym uniemożliwić pozostawienie pustych pół. Mam dwa kody: jeden działający i jeden nie. Ten drugi dotyczy większej liczby elemtntów, ale wydaje mi się taki sam, czy ktoś mógłby mi podpowiedzieć, co jest nie tak? Dodam, że problem jest taki, że IF się nie wykonuje (tzn zachowuje się tak, jakby $wypelniono zawsze mialo true, nawet kiedy pola są kompletnie puste)

kod, który działa:
  1. $wszystko_wpisane = true; //-------
  2. for ($x=0;$x<10;$x++)
  3. {
  4. trim($tekst[$x]);
  5. $tekst[$x] = mysql_real_escape_string(htmlspecialchars($tekst[$x]));
  6. if (empty($tekst[$x]) == true) {$wszystko_wpisane = false;}
  7. }
  8.  
  9. if ($wszystko_wpisane == false) {echo 'Blad! uzupelnij wszystkie pola!';}
  10. else { //jesli uzupelniono, dalsze instrukcje


No i teraz na tej podstawie zrobiłem kod, z którym mam problem:

  1. function sprawdzanie($liczba_obiektow, $obiekt)
  2. {
  3. for ($q=0;$q<$liczba_obiektow;$q++)
  4. {
  5. if (empty($obiekt[$q]) == true) {$wypelniono = false;}
  6. }
  7. return $wypelniono;
  8. }
  9.  
  10. $wypelniono = true;
  11. sprawdzanie($liczba_pyt, $pytanie[$q]);
  12. sprawdzanie($liczba_odp, $odpowiedz[$q]);
  13. sprawdzanie($liczba_wynik, $wynik[$q]);
  14.  
  15. if ($wypelniono == true)
  16. { dalsze instrukcje - wykonują się zawsze, nigdy nie wchodzi else}
  17. else { echo 'Blad, uzupelnij wszystkie pola!';}


Czy ktoś mógłby mnie naprowadzić? Bo nie widzę różnicy między nimi dwoma, a tylko drugi nie działa...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Ja nie widzę nigdzie przypisania tego co zwraca funkcja sprawdzająca. Zresztą lepiej by ciut było nieco inaczej funkcję sprawdzającą zrobić.
  1. function sprawdzanie( $tablica ) {
  2. if( is_array( $tablica ) && !empty( $tablica ) ) { //sprawdzamy czy to tablica i czy ma choć jeden element
  3. foreach( $tablica AS $element ) {
  4. $element = trim($element); // na wszelki wypadek usuwamy z elementu znaki puste
  5. if( empty( $element ) ) { return false; } //jeśli trafimy na element pusty to od razu możemy zakończyć funkcję z wynikiem negatywnym
  6. }
  7. return true;
  8. } else {
  9. return false;
  10. }
  11. }

Teraz musimy jedynie konkretne tablice sprawdzać.
  1. if( !sprawdzanie( $pytania ) ) { echo 'Nie uzupełnione pytania'; }
  2. if( !sprawdzanie( $odpowiedzi ) ) { echo 'Nie uzupełnione odpowiedzi'; }
  3. if( !sprawdzanie( $wyniki ) ) { echo 'Nie uzupełnione wyniki'; }
Oczywiście funkcja sprawdzająca będzie wyglądać inaczej jeśli masz inaczej zaprojektowaną strukturę danych, ale to już Twój problem bysobie odpowiednią napisać (IMG:style_emoticons/default/wink.gif)
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: 27.08.2026 - 20:44