Me gustaría crear un formulario que permita al usuario ingresar cualquier cantidad de valores, cada uno en un campo de texto separado usando una notación de matriz. El ejemplo esperada salida HTML es:Anotación de matriz Zend_Form sin índices
<dd id="dupa-element">
<input type="text" name="dupa[]" value="">
<input type="text" name="dupa[]" value="">
</dd>
Sin embargo, me parece que no puede encontrar una manera de introducir múltiples elementos de entrada dentro de un solo elemento, usando la notación de matriz sin índices.
Actualmente, hago esto:
$elt1 = new Zend_Form_Element_Text('1');
$elt1->setOptions(array('belongsTo' => 'dupa'));
$elt2 = new Zend_Form_Element_Textarea('2');
$elt2->setOptions(array('belongsTo' => 'dupa'));
Aunque esto funciona, Zend_Form trata a estos como elementos independientes (que pueden tener diferentes conjuntos de validadores y filtros - que es una especie de fresco) y el código HTML resultante es algo a lo largo estas líneas:
<dd id="dupa-1-element">
<input type="text" name="dupa[1]" id="dupa-1" value="">
</dd>
<dd id="dupa-2-element">
<input type="text" name="dupa[2]" id="dupa-2" value="">
</dd>
¿hay alguna manera (preferentemente sencilla) para lograr la matriz indexless notación que busco?
Ver http://stackoverflow.com/questions/5632296/zend-framework-add-new-input-element-using-javascript/5640268#5640268 –
@David, ¿cómo se relaciona esto con mi pregunta? – mingos
Supongo que interpreté que su fraseología "permite al usuario ingresar cualquier cantidad de valores" significa que el número de dichos elementos será desconocido cuando se entregue el formulario. La publicación a la que he vinculado describe una forma de permitir que el usuario agregue dinámicamente estos elementos de formulario en el lado del cliente y la instancia 'Zend_Form' del lado del servidor puede modificarse" mágicamente "para reflejar la realidad del lado del cliente. Si su situación no tiene ese tipo de indeterminación, entonces eliminaré mi comentario. Perdón por la lectura incorrecta –