Sto usando un file di configuration XML per dire a Zend_Form quali elementi voglio. Mi piacerebbe avere un elemento <select>
, ma non sono sicuro su come aggiungere tag <option>
usando la syntax XML.
Certo mi manca qualcosa di piuttosto semplice.
Ben
I moduli programmatici in ZF supportno solo il tipo di parametri, il nome e le opzioni (non nel significato delle scelte ma delle impostazioni degli elementi, come richiesto o etichetta) per gli elementi del module. Si presume che più valori saranno impostati dynamicmente, ad es .:
$formConfig = new Zend_Config_Xml('/path/to/form.xml'); $form = new Zend_Form($formConfig); $form->getElement('myselect')->setMultiOptions($arraysOfOptions);
Ovviamente c'è la possibilità di impostare effettivamente le opzioni degli elementi nel file XML usando la convenzione del proprio nome (verrà ignorata da Zend_Form) e quindi caricarle da lì invece di avere il codice hardcoded o recuperato in fase di runtime, ad esempio:
<?xml version="1.0" encoding="UTF-8"?> <form> <user> <example> <name>mysampleform</name> <method>post</method> <elements> <myselect> <type>select</type> <name>myselect</name> <multioptions> <!-- custom tag --> <option value="First">1</option> <option value="Second">2</option> <option value="Third">3</option> </multioptions> <options> <label>Choose an option:</label> <required>true</required> </options> </myselect> <submit> <type>submit</type> <options> <value>Submit</value> </options> </submit> </elements> </example> </user>
$formConfig = new Zend_Config_Xml('/path/to/form.xml'); $form = new Zend_Form($formConfig); $form->getElement('myselect')->setMultiOptions( $formConfig->user->example->elements->myselect->multioptions->toArray() );
Eppure non sembra più efficace di avere queste opzioni memorizzate altrove.