Well, I did it, reading the reference guide ^^.
// Load model.
$model = new Model();
// Get an instance of Zend_Form.
$form = new Zend_Form();
// I guess I can remove this line.
$form->setIsArray( true );
// Get form elements from my db.
$elements = $model->getFormElements();
// Loop trough every form db element, create the element and add it to the
Zend_Form object.
foreach ( $elements AS $elementId => $elementData )
{
// Create an instance of Zend_Form_Element_* and put a name like an array
(array[$index]).
// $formElement = new $elementData["class"]( "form[{$elementId}]" );
// NOTE: When I set $elementId as an integer I got an exception.
$formElement = new $elementData["class"]( "{$elementId}" );
// Set belongs to.
$formElement->setBelongsTo( "form" );
$form->addElement( $formElement );
}
----- Original Message -----
From: "Juan Felipe Alvarez Saldarriaga" <[EMAIL PROTECTED]>
To: "fw-general" <[email protected]>
Sent: Sunday, 19 October, 2008 11:21:08 AM GMT -05:00 Columbia
Subject: [fw-general] Zend_Form name of the elements issue
Hey!
I'm trying to create a Zend_Form with all elements part of array, meaning:
<input type="text" name="form[1]" value="" />
<input type="text" name="form[2]" value="" />
<input type="text" name="form[3]" value="" />
...
I'm doing this:
// Load model.
$model = new Model();
// Get an instance of Zend_Form.
$form = new Zend_Form();
// Get form elements from my db.
$elements = $model->getFormElements();
// Loop trough every form db element, create the element and add it to the
Zend_Form object.
foreach ( $elements AS $elementId => $elementData )
{
// Create an instance of Zend_Form_Element_* and put a name like an array
(array[$index]).
$formElement = new $elementData["class"]( "form[{$elementId}]" );
$form->addElement( $formElement );
}
The problem is, when I saw the form html code, I got this:
<input type="text" value="" id="form42" name="form42"/>
The "[" and "]" chars are stripped, why ? how can I create a form that all
elements belog to an array ?
Thx for any help.