Posted by Jeremy Kendall on Wed 21 Jan 12:30
report abuse | download | new post
- <?php
- /**
- * @see Zend_Form
- */
- require_once 'Zend/Form.php';
- /**
- * Proof of concept: dynamically adding elements to a Zend_Form
- */
- class Code_Form_Dynamic extends Zend_Form {
- public function init() {
- 'value' => 1
- ));
- 'required' => true,
- 'label' => 'Name',
- 'order' => 2,
- ));
- 'label' => 'Add',
- 'order' => 91
- ));
- 'label' => 'Remove',
- 'order' => 92
- ));
- // Submit
- 'label' => 'Submit',
- 'order' => 93
- ));
- }
- /**
- * After post, pre validation hook
- *
- * Finds all fields where name includes 'newName' and uses addNewField to add
- * them to the form object
- *
- * @param array $data $_GET or $_POST
- */
- // array_filter callback
- function findFields($field) {
- // return field names that include 'newName'
- return $field;
- }
- }
- // Search $data for dynamically added fields using findFields callback
- foreach ($newFields as $fieldName) {
- // strip the id number off of the field name and use it to set new order
- $this->addNewField($fieldName, $data[$fieldName], $order);
- }
- }
- /**
- * Adds new fields to form
- *
- * @param string $name
- * @param string $value
- * @param int $order
- */
- public function addNewField($name, $value, $order) {
- 'required' => true,
- 'label' => 'Name',
- 'value' => $value,
- 'order' => $order
- ));
- }
- }
Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.