class createForm extends DOMDocument { public $form; function __construct($version='1.0', $encoding='utf-8') { parent::__construct($version, $encoding); $this->formatOutput = true; $this->form = $this-> appendChild(parent::createElement('form')); $this->form-> setAttributeNode(new DOMAttr('action', '#')); $this->form-> setAttributeNode(new DOMAttr('method', 'post')); //$this->form = $this-> appendChild(parent::createElement('fieldset')); } function addElement($element, $data) { if($element == 'fieldset') { } $label = $this-> createElement($element); $this->form-> appendChild($label); // sprawdzam jaki typ pola if($data['type']){$label-> setAttributeNode(new DOMAttr('type', $data['type']));} // sprawdzam czy podano id if($data['id']){$label-> setAttributeNode(new DOMAttr('id', $data['id']));} // sprawdzam czy podano class if($data['class']){$label-> setAttributeNode(new DOMAttr('class', $data['class']));} // sprawdzam czy podano name if($data['name']){$label-> setAttributeNode(new DOMAttr('name', $data['name']));} // sprawdzam czy podano for if($data['for']){$label-> setAttributeNode(new DOMAttr('for', $data['for']));} // sprawdzam czy podano form if($data['form']){$label-> setAttributeNode(new DOMAttr('form', $data['form']));} if($data['value']) { if($element == 'button' || $element == 'label' || $element == 'legend') { $value = $this-> createTextNode($data['value']); $value = $label-> appendChild($value); } else{$label-> setAttributeNode(new DOMAttr('value', $data['value']));} } } // end addElement() public function __toString() { } }// end class createForm
przykład działania:
$form = new createForm(); $form-> addElement('input', array('type' => 'text', 'id' => 'title', 'class' => 'text', 'name' => 'title'));
Jednak nie wiem jak zrobić, aby dodać np element "fieldset" i aby każde elementy po nim, były wrzucane do niego, do czasu aż napotkają inny fieldset lub button.