Kod po poprawkach, zrobiłem jedną klasę z danymi, inne po niej dziedziczą. Wszystko zrobiłem w static, nie wiem czy to dobrze
<?php
class HTML_Element
{
protected
static $element_input; protected
static $element_textarea; protected
static $element_submit='Zapisz';
public function show_start()
{
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">'; }
public function show_end()
{
}
}
class Input extends HTML_Element
{
public function add_element_input($type, $name, $size, $maxlength, $title, $value='')
{
parent
$element_input[]=array('type' => $type, 'name' =>$name, 'size' => $size, 'maxlength' => $maxlength, 'title' => $title, 'value' => $value); }
public function show()
{
foreach (parent$element_input as $text)
{
echo $text['title'].'<input type="'.$text['type'].'" name="'.$text['name'].'" size="'.$text['size'].'" maxlength="'.$text['maxlength'].'"value="'.$text['value']; if($_POST['submit'] == parent
$element_submit) { echo $_POST[$text['name']];} echo'"><br />'; }
}
}
class Textarea extends HTML_Element
{
public function add_element_textarea($name, $rows, $cols, $title, $value='')
{
parent
$element_textarea[] = array('name' =>$name, 'rows' => $rows, 'cols' => $cols, 'title' => $title, 'value' => $value); }
public function show()
{
foreach (self$element_textarea as $text)
{
echo $text['title'].'<textarea name="'.$text['name'].'" rows="'.$text['rows'].'" cols="'.$text['cols'].'">'.$text['value']; if($_POST['submit'] == parent
$element_submit) { echo $_POST[$text['name']];} echo '</textarea><br />'; }
}
}
class Submit extends HTML_Element
{
public function add_element_submit($value)
{
parent$element_submit = $value;
}
public function show()
{
echo '<input type="submit" value="'.parent
$element_submit.'" name="submit" />'; }
}
class Validate extends HTML_Element
{
public function validate()
{
if($_POST['submit'] == parent$element_submit) {
foreach (parent$element_input as $text) {
if(empty($_POST[$text['name']])) { self$errors[]=$text['title'];
} else {
self$data[$text['name']] = $_POST[$text['name']];
}
}
foreach (parent$element_textarea as $text) {
if(empty($_POST[$text['name']])) { self$errors[]=$text['title'];
} else {
self$data[$text['name']] = $_POST[$text['name']];
}
}
}
}
public function show_error()
{
foreach(self$errors as $error) {
echo 'Uzupełnij pol: '.$error.'.<br />'; }
}
public function return_data()
{
return self$data;
}
}
$html = new HTML_Element;
$html->show_start();
$input = new Input;
$input->add_element_input('text', 'title', '30', '50', 'Podtytu: ', '');
$input->add_element_input('text', 'subtitle', '30', '50', 'Podtytu: ', '');
$input->add_element_input('text', 'titje', '30', '50', 'tytu: ', '');
$input->add_element_input('text', 'subtjle', '30', '50', 'Podtytu: ', '');
$input->show();
$text = new Textarea;
$text->add_element_textarea('content', '10', '50', 'Treś: ', '');
$text->show();
$submit = new submit;
$submit->add_element_submit('Zapisz');
$submit->show();
$html->show_end();
$validate =new Validate;
$validate->validate();
$validate->show_error();
$data = $validate->return_data();
?>