Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularze
Forum PHP.pl > Forum > PHP
slimboj
Witam,
Tworzę właśnie klasę sprawdzającą formularze w mojej aplikacji. Większość z tych formularzy różni się od siebie pewnymi elementami, np. w jednym są tylko pola <input>, w innym <input> i <textarea>.

Teraz chcę napisać metodę, która będzie sprawdzała, czy pola są puste. Generalnie jeżeli liczba pól w formularzach jest taka sama, to nie ma problemu:

Formularz:
  1. <form action="..." method="post">
  2. <input type="text" name="post_1">
  3. <input type="text" name="post_2">
  4. <input type="text" name="post_3">
  5. <button type="submit">send</button>
  6. </form>


Klasa sprawdzająca formularz:
  1. <?
  2.  
  3. class CheckForm
  4. {
  5. public function __construct()
  6.  {}
  7. public function isempty($var_1, $var_2, $var_3)
  8.  {
  9.   if(empty($var_1) || empty($var_2) || empty($var_3))
  10.    return false;
  11.   else
  12.    return true;
  13.  }
  14. }
  15.  
  16. ?>


Wywołanie:
  1. <?
  2.  
  3. $form = new CheckForm();
  4. $form -> isempty($post_1, $post_2, $post_3);
  5.  
  6. ?>


Tylko jeśli formularz będzie miał więcej pól to już takie rozwiązanie się nie sprawdzi.
Tak więc, czy jest możliwość aby do metody isempty() wrzucać dowolną liczbę zmiennych i jak sprawdzić ich poprawność.
Właśnie nie wiem do końca jak do tej metody przekazać zmienne, za pomocą tablicy?
zbig
Witam !

skorzystaj z func_num_args() i func_get_arg()

http://www.php.net/manual/en/function.func-get-arg.php

na pewno pomoze smile.gif

Edit

A tu masz prawie gotowy sposob uzywajacy func_get_args ( )

Pozdrawiam
slimboj
Dziękować smile.gif
pgrzelka
Kod
<input type="text" name="post[]">
<input type="text" name="post[]">
<input type="text" name="post[]">


tak to będzie wyglądać po wysłaniu
$_POST['post'] = array(0 => '', 1=> '', 2=>'');
slimboj
Racja, ale jeśli name będzie miało inną wartość, np:
  1. <input type="text" name="login">
  2. <input type="text" name="pass">
  3. <input type="text" name="c_pass">

To będzie nieco gorzej.

Chyba, że tak:
  1. <input type="text" name="post['login']">
  2. <input type="text" name="post['pass']">
  3. <input type="text" name="post['c_pass']">
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.