After looking through the mailing list archives and trying a lot of different
things I can't seem to find out why the form elements won't display from my
viewscript. They display fine when i don't use a viewscript and use the
default decorators.
My viewscript (/application/views/scripts/contactForm.phtml) looks like
this:
<h4>Please Fill Me Out</h4>
<form action="<? $this->escape($this->element->getAction()); ?>" method="<?
$this->escape($this->element->getMethod());?>">
<fieldset>
<legend>Contact Information</legend>
<p>Please provide us with the following information so we may contact
you.</p>
<? $this->element->firstName; ?>
<? $this->element->lastName; ?>
<? $this->element->email; ?>
<? $this->element->telephoneNum; ?>
</fieldset>
<fieldset>
<legend>Contact Reason & Message</legend>
<p>Now please provide us with your reason for contacting us and a brief
message.</p>
<? $this->element->contactReason; ?>
<? $this->element->message; ?>
</fieldset>
<? $this->element->submit; ?>
</form>
My class in (/application/forms/ContactForm.php) is as follows:
class forms_ContactForm extends Zend_Form {
public function __construct($options = null)
{
parent::__construct($options);
$this->setAction('');
$this->setMethod('post');
$this->setName('contact_us');
$firstName = new Zend_Form_Element_Text('firstName');
$firstName->setLabel('First Name')
->setRequired(true)
->addValidator('NotEmpty', true)
->addValidator('Alpha', true);
$lastName = new Zend_Form_Element_Text('lastName');
$lastName->setLabel('Last Name')
->setRequired(true)
->addValidator('NotEmpty')
->addValidator('Alpha', true);
$telephoneNum = new Zend_Form_Element_Text('telephoneNum');
$telephoneNum->setLabel('Telephone Number')
//->setDescription('example
(555)555-5555')
->setRequired(false)
->addValidator('NonEmpty');
$email = new Zend_Form_Element_Text('email');
$email->setLabel('Email Address')
->addFilter('StripTags')
->addFilter('StringTrim')
->addFilter('StringToLower')
->setRequired(true)
->addValidator('NotEmpty', true)
->addValidator('EmailAddress');
$contactReason = new Zend_Form_Element_Select('contactReason');
$contactReason->setLabel('Reason for Contact')
->setRequired(true)
->addMultiOption('none','Please
Select One')
->addMultiOption('personal','Personal')
->addMultiOption('business','Business')
->addValidator('NotEmpty');
$message = new Zend_Form_Element_Textarea('message');
$message->setLabel('Comments')
->setAttrib('rows','15')
->setAttrib('cols','70')
->setRequired(true)
->addValidator('NotEmpty');
$submit = new Zend_Form_Element_Submit('submit');
$submit->setLabel('Submit Form');
$this->setDecorators(array(
array('ViewScript',array('viewScript' =>
'forms/contactForm.phtml'))
));
$this->addElements(array($firstName, $lastName, $email,
$telephoneNum,
$contactReason, $message, $submit));
}
}
?>
When the script runs it outputs the fieldsets and the legends with the
descriptions but nothing else is outputted. Any ideas on what could be
causing this. Been trying to figure this out for a few days now and could
really use some help as I'm still learning OOP and the Zend Framework.
--
View this message in context:
http://www.nabble.com/Zend_Form-ViewScript-Elements-don%27t-show-tp19696062p19696062.html
Sent from the Zend Framework mailing list archive at Nabble.com.