the problem is i dont want to use viewscript, because my jquery decorator
wont be working I guess, any one can fix my approach?
swilhelm wrote:
>
> Coincidentally, I was testing subforms on Monday. Here is a somewhat
> contrived login form created from two subforms.
>
> I took a slightly different approach in that I wanted the form and
> subforms created by config files and I am using a form viewscript to
> render the form.
>
> Code fragments below. Hope this helps.
>
> - Steve W.
>
> //
> $config = new Zend_Config_Ini(APPLICATION_PATH .
> '/config/forms.ini');
> $this->_loginForm = new Zend_Form($config->login->login);
>
> $utilConfig = new Zend_Config_Ini(APPLICATION_PATH .
> '/config/utilForms.ini');
>
> $this->_loginForm->addSubForm(new
> Zend_Form_SubForm($utilConfig->util->login), 'login');
> $this->_loginForm->addSubForm(new
> Zend_Form_SubForm($utilConfig->util->minimalInfo), 'minimalInfo');
>
> $element = new Zend_Form_Element_Submit('submit');
> $this->_loginForm->addElement($element, 'submit');
>
> $this->_loginForm->setDecorators(
> array(
> array('ViewScript', array('viewScript'
> => 'login/login.phtml'))
> )
> );
>
> Here are my config files. Notice I am playing setting decorators.type to
> ViewHelper to test the control element decoration.
>
> // forms.ini
>
> ;; Login Controller
> ;; Login Form
> login.form = "login"
> login.login.action = "identify"
> login.login.method = "post"
> ;
> login.login.elements.hidden.type = "hidden"
> login.login.elements.hidden.options.value = "testing"
>
>
> // utilForms.ini
>
> ;; login subform
> util.login.subform = true
> util.login.subform.name = "_login"
>
> ; username element
> util.login.elements.username.type = "text"
> util.login.elements.username.options.validators.alnum.validator = "alnum"
> util.login.elements.username.options.validators.regex.validator = "regex"
> util.login.elements.username.options.validators.regex.options.pattern =
> "/^[a-z]/i"
> util.login.elements.username.options.validators.strlen.validator =
> "StringLength"
> util.login.elements.username.options.validators.strlen.options.min = "6"
> util.login.elements.username.options.validators.strlen.options.max = "20"
> util.login.elements.username.options.required = true
> util.login.elements.username.options.filters.lower.filter =
> "StringToLower"
> util.login.elements.username.options.label = "Username:"
> util.login.elements.username.options.decorators.type = "ViewHelper"
>
> ; password element
> util.login.elements.password.type = "password"
> util.login.elements.password.options.validators.strlen.validator =
> "StringLength"
> util.login.elements.password.options.validators.strlen.options.min = "6"
> util.login.elements.password.options.required = true
> util.login.elements.password.options.label = "Password:"
> util.login.elements.password.options.decorators.type = "ViewHelper"
>
>
> ;; minimualInfo subForm
>
> util.minimalInfo.subform = true
> util.minimalInfo.subform.name = "_minimalInfo"
>
> ; email element
> util.minimalInfo.elements.email.type = "text"
> util.minimalInfo.elements.email.options.validators.notempty.validator =
> "NotEmpty"
> util.minimalInfo.elements.email.options.validators.notempty.breakChainOnFailure
> = true
> util.minimalInfo.elements.email.options.validators.strlen.validator =
> "StringLength"
> util.minimalInfo.elements.email.options.validators.strlen.options.min = 1
> util.minimalInfo.elements.email.options.validators.strlen.options.max = 50
> util.minimalInfo.elements.email.options.required = true
> util.minimalInfo.elements.email.options.label = "EMail:"
>
> ; phone element
> util.minimalInfo.elements.phone.type = "text"
> util.minimalInfo.elements.phone.options.validators.notempty.validator =
> "NotEmpty"
> util.minimalInfo.elements.phone.options.validators.notempty.breakChainOnFailure
> = true
> util.minimalInfo.elements.phone.options.validators.strlen.validator =
> "StringLength"
> util.minimalInfo.elements.phone.options.validators.strlen.options.min = 1
> util.minimalInfo.elements.phone.options.validators.strlen.options.max = 15
> util.minimalInfo.elements.phone.options.required = false
> util.minimalInfo.elements.phone.options.label = "Phone:"
>
> // Here is the ViewScript views/scripts/login/login.phtml
>
> <h1><?php echo $this->escape($this->title); ?></h1>
> <?php echo $this->actionMessages();?>
> <p>Please log in here</p>
> <form action="<?php echo $this->escape($this->loginForm->getAction()); ?>"
> method="<?php echo $this->escape($this->loginForm->getMethod());
> ?>">
>
> <div id="username" class="formLabel">Username:</div><?php echo
> $this->loginForm->login->username; ?><br/>
>
> Password:<?php echo $this->loginForm->login->password; ?><br/>
>
> <?php echo $this->loginForm->minimalInfo->email; ?><br/>
>
> <?php echo $this->loginForm->minimalInfo->phone; ?><br/>
>
> <?echo $this->loginForm->submit ?>
> </form>
>
>
> qba_rox wrote:
>>
>> HI
>> I have one main form, and two sub forms, and I want to have a common
>> submit button. But it really doesnt display that button after render
>> action.
>>
>> got:
>>
>> $this->setDecorators(array(
>> 'FormElements',
>> array('TabContainer', array(
>> 'id' => 'newsTabs',
>> 'style' => 'width: 960px;',
>> 'jQueryParams' => array()
>> )),
>> 'Form',
>> ));
>>
>> $submit = new Zend_Form_Element_Submit('submit');
>> $submit->setLabel('Save');
>> $this->addElement($submit);
>>
>> $this->addSubForm(new News_Form_General, 'general');
>> $this->addSubForm(new News_Form_Content, 'content');
>>
>> and both sub forms are displayed, bot submit element is not. help :)
>>
>
>
--
View this message in context:
http://www.nabble.com/zend-form%2C-sub-forms-and-submit-element-tp21460497p21467711.html
Sent from the Zend Framework mailing list archive at Nabble.com.