Home >Backend Development >PHP Tutorial >Zend_Form component implements form submission and displays error prompts

Zend_Form component implements form submission and displays error prompts

不言
不言Original
2018-06-07 13:34:121533browse

This article mainly introduces the method of Zend_Form component to implement form submission and display error prompts. It analyzes in detail the usage method of Zend_Form component and the specific steps to implement form submission based on the example form. Friends in need can refer to the following

The example in this article describes how the Zend_Form component of the Zend Framework tutorial implements form submission and displays error prompts. Share it with everyone for your reference, the details are as follows:

At the same time, the company wants to develop a group function.. I also want to use Zend_Form to realize the function of creating groups. The main thing is that Zend_Form can be used in writing When forming, the server-side verification function is implemented, which saves us from verifying it again when submitting the data to the database. So, I read the manual on this aspect and found the relevant instructions through the Zend Framework manual. ..The simplest way to use it is to write a ready-made Action in the controller (Controller), so that...you can use this Action directly in this controller...The code can be as follows:

<?php
public function formAction() {
$form=new Zend_Form();
$form->setName(&#39;group&#39;);
$title = new Zend_Form_Element_Select(&#39;title&#39;);
$title ->setLabel(&#39;性别&#39;) ->setMultiOptions(array(&#39;mr&#39;=>&#39;Mr&#39;, &#39;mrs&#39;=>&#39;Mrs&#39;)) ->setRequired(true) ->addValidator(&#39;NotEmpty&#39;, true);
$yourName = new Zend_Form_Element_Text(&#39;firstName&#39;);
$yourName->setLabel(&#39;姓名&#39;) ->setRequired(true) ->addValidator(&#39;NotEmpty&#39;, true) ;
$email = new Zend_Form_Element_Text(&#39;email&#39;);
$email->setLabel(&#39;电子邮件地址&#39;) ->addFilter(&#39;StringToLower&#39;) ->setRequired(false) ->addValidator(&#39;NotEmpty&#39;);
$submit = new Zend_Form_Element_Submit(&#39;submit&#39;);
$submit->setLabel(&#39;group&#39;);
$form->addElements(array($title, $yourName,$email,$submit));
}
?>

Of course .. I can also write this Form as a class... and store it in a common directory of forms. This will make it easier for us to manage all our Form forms.. My implementation method is to put it in the same directory as the Controller. ) in the same level directory... This is also convenient for management. Of course, different friends have different ideas... Another way... is to write it as View Helper... This way can be implemented ,, is also very convenient... I don’t want to write more here... Zend Framework is very convenient to implement... As long as you can think of it... no matter how you complete your task, it is possible... I won't say much else here...I just want to talk about how to make Zend_Form realize the Chinese prompt information function...I have two methods here...

First: The stupid way is : If your website does not want to be a multi-language website...and if your Zend Framework version is not changed frequently...you can find the source code of the relevant prompt information...change the prompt to Chinese.

This stupid method... There is really no other way... Haha...

Second: I also saw a better way on the English site... which is to rewrite this Prompt message. Change it to the language we want... In this way... Even if we change the language... or the version of Zend Framework...

, it will not have a great impact on us ...We just need to change the form of our Form and it will be done. The code for this method is as follows (I only wrote the email prompt information here. Don't write more other things):

<?php
$email = new Zend_Form_Element_Text(&#39;email&#39;);
$email->setLabel(&#39;电子邮件地址&#39;) ->addFilter(&#39;StringToLower&#39;) ->setRequired(false) ->addValidator(&#39;NotEmpty&#39;) ->addValidator(&#39;EmailAddress&#39;,true,array(&#39;messages&#39; => array( 
&#39;emailAddressInvalid&#39; => &#39;这不是一个可用的电子邮件!&#39;, 
&#39;emailAddressInvalidHostname&#39; => &#39;这不是一个有效的主机名!&#39;, 
&#39;emailAddressInvalidMxRecord&#39; => &#39;这不是一个有效的电子邮件地址!&#39;, 
&#39;emailAddressDotAtom&#39; => &#39;这不是一个有效的电子邮件地址!&#39;, 
&#39;emailAddressQuotedString&#39; => &#39;这不是一个有效的电子邮件地址!&#39;, 
&#39;emailAddressInvalidLocalPart&#39; => &#39;这不是一个有效的电子邮件地址!&#39;,
))); 
?>

Here.. The Zend_Form component also has a more important function.. It is Zend_Form_Decorator.. It is called a decorator in the manual, which means that you can write the decorator you want. For example, you need to Your Form is included in Table... How do we implement it? At this time... we have to use decorators such as HtmlTag and Label to achieve the functions we want... This is a relatively important concept. .. Friends who are interested can go and take a look... Because if you want to use the Zend_Form component... it will be difficult to use it if you don't know the decorator... so you must know this thing... before you can create it. The form function I want... In the end... it's just a little use of decorators

I just implement a small function... The code is as follows:

<?php
$email = new Zend_Form_Element_Text(&#39;email&#39;);
$email->setLabel(&#39;电子邮件地址&#39;) ->addFilter(&#39;StringToLower&#39;) ->setRequired(false) //利用装饰器来增加td标签
->addDecorator(&#39;HtmlTag&#39;, array(&#39;tag&#39; => &#39;td&#39;)) ->addDecorator(&#39;Label&#39;, array(&#39;tag&#39; => &#39;td&#39;)) //重复利用HtmlTag装饰器来增加tr标签
->addDecorator(array(&#39;FooTr&#39; => &#39;HtmlTag&#39;), array(&#39;tag&#39; => &#39;tr&#39;)) ->addValidator(&#39;NotEmpty&#39;);
?>

Haha... roughly This is the application... Finally... it is to verify the submitted data... See how to verify the data submitted by the user... I won't say much here... OK...

Related recommendations:

thinkphp multi-table query two tables have the perfect solution to duplicate the same fields

##

The above is the detailed content of Zend_Form component implements form submission and displays error prompts. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn