Pop\Form\Form::removeElement PHP Method

removeElement() public method

Remove a form element
public removeElement ( string $elementName )
$elementName string
    public function removeElement($elementName)
    {
        $i = $this->getElementIndex($elementName);
        $newInitValues = array();
        $keys = array_keys($this->initFieldsValues);
        if (isset($keys[0]) && is_numeric($keys[0])) {
            foreach ($this->initFieldsValues as $fields) {
                $newInitValuesAry = array();
                foreach ($fields as $name => $field) {
                    if (isset($name) && $name == $elementName) {
                        unset($fields[$name]);
                    } else {
                        $newInitValuesAry[$name] = $field;
                    }
                }
                $newInitValues[] = $newInitValuesAry;
            }
        } else {
            foreach ($this->initFieldsValues as $name => $field) {
                if (isset($name) && $name == $elementName) {
                    unset($this->initFieldsValues[$name]);
                } else {
                    $newInitValues[$name] = $field;
                }
            }
        }
        $this->initFieldsValues = $newInitValues;
        if (isset($this->fields[$elementName])) {
            unset($this->fields[$elementName]);
        }
        if (null !== $i) {
            $this->form->removeChild($i);
        }
        return $this;
    }

Usage Example

Beispiel #1
0
 public function testRemoveElements()
 {
     $e = new Element('text', 'username', 'Username');
     $c = new Checkbox('colors', array('Red', 'Green', 'Blue'));
     $r = new Radio('colors', array('Red', 'Green', 'Blue'));
     $f = new Form('/submit', 'post');
     $f->addElements(array($e, $c, $r));
     $f->removeElement('username');
     $f->removeElement('colors');
     $this->assertEquals(1, count($f->getFields()));
 }