displays, but it won't submit and display errors when you leave the
form blank.
Thanks,
Ed
Here's code for the form, code for the controller loading the form,
and code for the view displaying the form.
---------------------------------------------------------
Form code:
---------------------------------------------------------
class Test2Form extends Zend_Dojo_Form {
public $drivers = array("-- Select --", "Rob Allen", "Charlie Brown",
"Lucy van Pelt");
public function __construct($options = null) {
parent::__construct($options);
$this->setName('mileagelog');
$user_id = new Zend_Form_Element_Select('user_id');
$user_id
->setLabel('Driver:')
->setMultiOptions($this->drivers)
->setRequired(true)
->addErrorMessage("Please choose a driver.")
->addValidator(new Zend_Validate_GreaterThan(0));
$this->addElement($user_id);
$logDate = new Zend_Dojo_Form_Element_DateTextBox('logDate');
$logDate
->setLabel('Log Date')
->setRequired(true)
->addValidator('NotEmpty')
->addErrorMessage("Please provide a date.");
$this->addElement($logDate);
$submit = new Zend_Form_Element_Submit('submit');
$this->addElement($submit);
}
}
---------------------------------------------------------
Controller code:
---------------------------------------------------------
public function test2Action() {
$form = new Test2Form();
$this->view->title = "Test Form Validation";
$request = $this->getRequest();
$form->setAction('/post/test2')->setMethod('post');
$this->view->form = $form;
if ($request->isPost()) {
$formData = $request->getPost();
if ($form->isValid($formData)) {
echo "Success!";
} else {
$this->view->messages = $form->getMessages();
$form->populate($formData);
}
}
}
---------------------------------------------------------
View code:
---------------------------------------------------------
echo "<h1>{$this->title}</h1>\n";
if (!empty($this->messages)) {
echo "<ul>\n";
foreach ($this->messages as $field => $messageList) {
foreach ($messageList as $message) {
echo "<li>$message</li>\n";
}
}
echo "</ul>\n";
}
echo $this->form;
echo $this->content;
没有评论:
发表评论