Skocz do zawartości


Zdjęcie

[PHP] Klasa do generowania formularzy


  • Zaloguj się, aby dodać odpowiedź
1 odpowiedź w tym temacie

#1 Abel

Abel

    Nowy

  • 3 postów

Napisano 19 03 2008 - 20:20

Czy nie znudziło Ci się ręczne tworzenie input'ów? Na pewno. Właśnie dla tego, dzisiaj postanowiłem napisać klasę, która będzie robić to za Ciebie ;) Teraz stworzenie formularza z dużą liczbą pól to pestka ;p

Więc zacznijmy omawiać od początku:

<?php
/*
* Klasa do obsługi formularzy
* Jesli chcesz możesz korzystać do woli, ale ten komentarz musi zostać
* Autor: Abel kin94@o2.pl
*
*/

class Forms
{
// $Name -> Nazwa formularza
// $Action -> URL, do którego ma prowadzić formularz
// $Method -> Metoda przesyłanych danych (get lub post)
// $UpLoad -> TRUE - dla uploadu; FLASE - dla zwykłych danych (domyslnie FALSE)

public function open($Name = '', $Action = '', $Method = 'post', $UpLoad = FALSE)
{// Otwieranie formularza

if($UpLoad == TRUE)
{

echo '
<form name="'.$Name.'" enctype="multipart/form-data" action="'.$Action.'" method="'.$Method.'">';

}
else
{

echo '
<form name="'.$Name.'" action="'.$Action.'" method="'.$Method.'">';

}


Mamy tu przedstawioną funkcję open(), która tworzy szkielet formularza. Przekazujemy do niej 4 parametry. $Name czyli nazwa formularza, $Action strona lub plik gdzie zostanie wykonany formularz, $Method czyli metoda jaką będziemy przesyłać dane. Domyślnie jest to "post". Został nam jeszcze jeden parametr $UpLoad, a mianowicie czy w danym formularzy zamierzamy przesyłać plik. Jeśli tak ustawiamy "TRUE" w przeciwnym wypadku opuszczamy ten parametr, ponieważ domyślnie jest ustawiony na "FALSE".

Sposób użycia:


<?php
include('forms.php');
$form = new Forms();
$form->open('nazwaFormularza', 'index.php', 'post');

?>


Funkcja poniżej jest odpowiedzialna za zamknięcie naszego formularza czyli wstawienie "</form>" i nie wymaga żadnych parametrów.
public function close()
{//Zamykanie formularza

echo '</form>

';

}//end close();


Sposób użycia:


<?php
include('forms.php');
$form = new Forms();
$form->close();
?>


Teraz musimy stworzyć funkcje które będą odpowiedzialne za wyświetlanie pól. Nie będę omawiał wszystkich, ponieważ większość z nich bazuje na jednej, która się prawie w całości powtarza ;) Więc do dzieła.
public function input_text($Name = '', $Value = '', $Params = '')
{// Wstawianie
<input type="text" name="" value="" />

if(!empty($Params))
{

echo '
<input type="text" name="'.$Name.'" value="'.$Value.'" '.$Params.'/>';

}
else
{

echo '
<input type="text" name="'.$Name.'" value="'.$Value.'" />';

}

}//end input_text();

Jest to funkcja odpowiedzialna za wyświetlenie najzwyklejszego pola, do którego możemy wpisać tekst. Ma ona 3 parametry. $Name - nazwa pola, $Value - wartość, $Params - dodatkowe parametry.

if(!empty($Params))
{

echo '
<input type="text" name="'.$Name.'" value="'.$Value.'" '.$Params.'/>';

}
else
{

echo '
<input type="text" name="'.$Name.'" value="'.$Value.'" />';

}


Jeśli zmienna Params nie jest pusta to znaczy, że musimy do kodu naszego input'a dorzucić jej zawartość w przeciwnym wypadku wyświetlamy input bez dodatkowych parametrów.

Sposób użycia:
<?php
include('forms.php');
$form = new Forms();

$form->input_text('nazwaPola', 'Wartość', 'class="mojaklasa"');

?>

Tym razem zajmiemy się funkcją, która z elementów tablicy tworzy pola typu "checkbox".
public function input_checkboxs($Dat = array())
{//Wstawianie wielu checkbox'ow z tablicy
$DatNumber = count($Dat);

foreach($Dat as $ID => $val)
{

if(!empty($val[params]))
{

echo '
<input type="checkbox" name="'.$val[name].'" value="'.$val[value].'" '.$val[params].' />';

}
else
{

echo '
<input type="checkbox" name="'.$val[name].'" value="'.$val[value].'" />';

}
}

}//end input_checkboxs();

Ta funkcja posiada jeden parametr $Dat, który jest tablicą. Zmienna $DatNumber przechowuje liczbę pól jakie chcemy stworzyć, a potem w pętli odczytujemy zawartość poszczególnych pól tablicy i wyświetlamy gotowy kod input'a. Czyż to nie jest proste? ;)

Sposób użycia:
<?php
include('forms.php');
$form = new Forms();
$dat[0]['name'] = 'zainteresowania';
$dat[0]['value'] = 'Sport';

$dat[1]['name'] = 'zainteresowania';
$dat[1]['value'] = 'Gry';

$dat[2]['name'] = 'zainteresowania';
$dat[2]['value'] = 'IT';

$form->input_checkboxst($dat);

?>

public function input_select($Name = '', $Dat = array(), $Params = '')
{//Wstawianie pola select (
<select name="" size="">"OPCJE"</select>

)
$DatNumber = count($Dat);

if(!empty($Params))
{

echo '
<select name="'.$Name.'" '.$Params.'>';

}
else
{

echo '
<select name="'.$Name.'">';

}

foreach($Dat as $ID => $val)
{

echo '<option value="'.$val[value].'"/>'.$val[text].'</option>';

}

echo '</select>

';
}//end input_select();

Powyższy kod jest odpowiedzialny za stworzenie listy wyboru. Do funkcji przekazujemy 3 parametry. Pierwszy $Name - nazwa listy, $Dat - tablica z opcjami oraz opcjonalnie $Params czyli dodatkowe parametry dla listy, np.: "class="input".

Sposób użycia:
<?php
include('forms.php');
$form = new Forms();
$dat[0]['value'] = 'mezczyzna';
$dat[0]['text'] = 'Mężczyzna';

$dat[1]['value'] = 'kobieta';
$dat[1]['text'] = 'Kobieta';

$form->input_select('plec', $dat);

?>

Mam nadzieję, że przydał Ci się mój artykuł :)

Cały kod, spis wszystkich funkcji oraz link do pobrania na www.abel.go.pl

  • 0

#2 Kai

Kai

    Stały użytkownik

  • 237 postów

Napisano 05 11 2008 - 01:43

Tworzenie obiektu nie wykorzystując praktycznie żadnych z właściwości (chociażby pól) obiektowości dostępnych w PHP jest postępowaniem nad wyrost. Spokojnie można to wrzucić w zwykłe funkcje, taka rada dla czytających tego arta.

  • 0

Zobacz więcej tematów z tagiem: formularz



Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych