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.

Reply via email to