Класс создания формы (Rating: -5)

Print RSS
Создание форм и получение содержимого в одной переменной

Класс
<?
define('BR',1);
class forms{
var $action;
var $method;
var $form_start;
var $form_close = '</form>';
var $clform;
var $cols = '25';
var $rows = '4';
var $size;
var $maxlength;
var $text;

function forms($action,$method)
{
		$this->action = $action;
		$this->method = $method;
		$this->form_start = '<form action="'.$action.'" method="'.$method.'">';
}

function addelem($TYPE,$form_type=null,$NAME,$VALUE=null,$br=null,$option=null)
{
	if ($form_type == '') {$form_type = 'text';}
	if ($br){$br = '<br />';}
	if (!empty($this->text)){$text = $this->text."\n";}
        if (!empty($this->size)){$size = 'size="'.$this->size.'"';}
	if (!empty($this->maxlength)){$maxlength = 'maxlength="'.$this->maxlength.'"';}
	
	
if ($TYPE == 'input')
{
		$this->clform[] = $text.'<input type="'.$form_type.'" name="'.$NAME.'" value="'.$VALUE.'" '.$size.' '.$maxlength.'/>'.$br;
}

elseif ($TYPE == 'textarea')
{
		$this->clform[] = $text.'<textarea name="'.$NAME.'" cols="'.$this->cols.'" rows="'.$this->rows.'" '.$maxlength.'>'.$VALUE.'</textarea>'.$br;
}

elseif ($TYPE == 'select')
{
		$select  = $text.'<select name="'.$NAME.'" '.$size.'>'.$br."\n";
		for ($i=0; $i<count($option); $i++)
		{
			if ($option[$i][2] == 'selected'){$selected = 'selected="selected"';}
			$select .= '<option value="'.$option[$i][0].'" '.$selected.' '.$size.'>'.$option[$i][1].'</option>'."\n";
			$selected = '';
		}
		$select .= '</select>'.$br."\n";
		$this->clform[] = $select;
}

elseif ($TYPE == 'checkbox')
{
		if ($option == 'checked'){$checked = 'checked="checked"';}
		$this->clform[] = $text.'<input type="'.$form_type.'" name="'.$NAME.'" value="'.$VALUE.'" '.$checked.' '.$size.' '.$maxlength.'/>'.$br;
}

elseif ($TYPE == 'radio')
{
		$this->clform[] = $text.'<input type="'.$form_type.'" name="'.$NAME.'" value="'.$VALUE.'" '.$size.' '.$maxlength.'/>'.$br;
}

$this->text = '';
$this->size = '';
$this->maxlength = '';
}

function form()
{
	$form = $this->form_start."\n";
	for ($i=0; $i<count($this->clform); $i++){$form .= $this->clform[$i]."\n";}
	$form .= $this->form_close."\n";
	return $form;
}
}
?>

Вызываем класс
Функция forms(action ,method )
Функция addelem(type , type_form , name , value, br , option)
Пример создания формы,возьмём форму для регистрации

<?
$form = new forms('index.php','POST');
$form->text = 'Логин:<br />'; // Тест возле формы
$form->maxlength = '8'; // Кол-во символов в форме
$form->addelem('input' , 'text' , 'user_login' , null, BR ); // Создаём форму


$form->text = 'Пароль:<br />'; // Тест возле формы
$form->maxlength = '8'; // Кол-во символов в форме
$form->addelem('input' , 'password' , 'user_pass' , null, BR ); // Создаём форму

$form->text = 'E-mail:<br />'; // Тест возле формы
$form->maxlength = '32'; // Кол-во символов в форме
$form->addelem('input' , 'text' , 'user_email' , null, BR ); // Создаём форму

$form->addelem('input' , 'submit' , 'go_reg', 'Зарегистрироваться', BR); //Кнопка submit

///// Получаем созданную форму в переменной
$reg_form = $form->form();

echo $reg_form; 
?>

Результат
<form action="index.php" method="POST">
Логин:<br />
<input type="text" name="user_login" value=""  maxlength="8"/><br />
Пароль:<br />
<input type="password" name="user_pass" value=""  maxlength="8"/><br />
E-mail:<br />
<input type="text" name="user_email" value=""  maxlength="32"/><br />
<input type="submit" name="go_reg" value="Зарегистрироваться"  /><br />
</form>

Пример создания формы select
<?
$form = new forms('index.php','POST');
$form->text = 'Логин:<br />'; // Тест возле формы
$form->maxlength = '8'; // Кол-во символов в форме
$form->addelem('input' , 'text' , 'user_login' , null, BR ); // Создаём форму


$form->text = 'Пароль:<br />'; // Тест возле формы
$form->maxlength = '8'; // Кол-во символов в форме
$form->addelem('input' , 'password' , 'user_pass' , null, BR ); // Создаём форму

$form->text = 'E-mail:<br />'; // Тест возле формы
$form->maxlength = '32'; // Кол-во символов в форме
$form->addelem('input' , 'text' , 'user_email' , null, BR ); // Создаём форму

//// Создание опций
### $option[] = array( value , Имя опции , атрибут selected);

$option[] = array(1,'Покупатель');
$option[] = array(2,'Продавец','selected');
$form->addelem('select',null,'type_client',null,BR,$option);

$form->addelem('input' , 'submit' , 'go_reg', 'Зарегистрироваться', BR); //Кнопка submit

///// Получаем созданную форму в переменной
$reg_form = $form->form();

echo $reg_form; 
?>

Результат
<form action="index.php" method="POST">
Логин:<br />
<input type="text" name="user_login" value=""  maxlength="8"/><br />
Пароль:<br />
<input type="password" name="user_pass" value=""  maxlength="8"/><br />
E-mail:<br />
<input type="text" name="user_email" value=""  maxlength="32"/><br />
<select name="type_client" ><br />
<option value="1"  >Покупатель</option>
<option value="2" selected="selected" >Продавец</option>
</select><br />

<input type="submit" name="go_reg" value="Зарегистрироваться"  /><br />
</form>

Так же создаётся textarea
$form->cols = '25';// длинна формы
$form->rows = '6'; // Кол-во строк
$form->addelem('textarea',null,'nameform','value',BR);
Длинну форму input можно увеличить $form->size = 'Длинна формы';
Added:
Rating: -5
Views: 2016
Comments (6) »