Maison  >  Article  >  développement back-end  >  Le composant Zend_Form implémente la soumission de formulaire et affiche des invites d'erreur

Le composant Zend_Form implémente la soumission de formulaire et affiche des invites d'erreur

不言
不言original
2018-06-07 13:34:121484parcourir

Cet article présente principalement la méthode du composant Zend_Form pour implémenter la soumission de formulaire et afficher les invites d'erreur. Il analyse en détail l'utilisation du composant Zend_Form et les étapes spécifiques pour implémenter la soumission de formulaire sous forme d'exemples auxquels les amis dans le besoin peuvent se référer. it

L'exemple de cet article décrit comment le composant Zend_Form du tutoriel Zend Framework implémente la soumission de formulaire et affiche des invites d'erreur. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

En même temps, l'entreprise souhaite développer une fonction de groupe. Je souhaite également utiliser Zend_Form pour réaliser la fonction de création de groupes. l'essentiel est que Zend_Form puisse être utilisé par écrit Lors de la formation, la fonction de vérification côté serveur est implémentée, ce qui nous évite de vérifier à nouveau lors de la soumission des données à la base de données. J'ai donc lu le manuel sur cet aspect et trouvé les instructions pertinentes. via le manuel du Zend Framework. ..La façon la plus simple de l'utiliser est d'écrire une action prête à l'emploi dans le contrôleur (Controller), afin que... cette action puisse être utilisée directement dans ce contrôleur... Le code peut être comme suit :

<?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));
}
?>

Bien sûr.. Je peux aussi écrire ce Formulaire en tant que classe... et le stocker dans un répertoire commun de formulaires Cela nous permettra de gérer plus facilement tous nos Formulaires. formulaires.. La façon dont je l'implémente est de le placer dans le même répertoire que le contrôleur. (Contrôleur) dans le même répertoire de niveau... C'est également pratique à gérer. Bien sûr, différents amis ont des idées différentes... Un autre. façon... est de l'écrire en tant que View Helper... De cette façon, c'est également très pratique à implémenter... Je ne veux pas en écrire plus ici... Zend Framework est très pratique à implémenter... Tant que en y réfléchissant... peu importe la façon dont vous accomplissez votre tâche, c'est possible. Je ne dirai pas grand-chose d'autre ici... Je veux juste parler de la façon dont Zend_Form réalise la fonction d'information rapide en chinois. .J'ai deux méthodes ici...

Première : relativement stupide. La solution est la suivante : si votre site Web ne veut pas être un site Web multilingue... et si votre version de Zend Framework n'est pas modifiée fréquemment. .. vous pouvez trouver le code source des informations d'invite pertinentes... et changer l'invite en chinois

Cette méthode stupide... il n'y a vraiment pas d'autre moyen... haha...

Deuxième : j'ai également vu un meilleur moyen sur le site anglais... c'est-à-dire en réécrivant ce message d'invite, en le changeant dans la langue que nous voulons... De cette façon... Même si nous changeons. la langue... ou changer la version de Zend Framework...

n'aura aucun impact sur nous C'est très gros... Il suffit de changer la forme de notre Form pour y parvenir. le code de cette méthode est le suivant (je n'ai écrit ici que les informations de l'invite de courrier électronique. N'écrivez pas plus d'autres choses) :

<?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;,
))); 
?>
C'est parti. Le composant Zend_Form a également une autre fonction importante. Zend_Form_Decorator. C'est ce qu'on appelle un décorateur dans le manuel, ce qui signifie que vous pouvez écrire le décorateur que vous voulez par exemple. Vous devez inclure votre formulaire avec le tableau... Comment pouvons-nous l'implémenter à ce stade ? utiliser des décorateurs tels que HtmlTag et Label pour réaliser les fonctions que l'on souhaite...Voici un comparatif C'est un concept important... Les amis intéressés peuvent aller voir... Parce que si vous voulez utiliser le composant Zend_Form ... il sera très difficile de l'utiliser si vous ne connaissez pas le décorateur... Vous devez donc connaître cette chose... Ce n'est qu'alors que vous pourrez créer la fonction de formulaire que vous souhaitez... Enfin... c'est juste un peu d'utilisation des décorateurs

Je viens d'implémenter une petite fonction... Le code suivant :

<?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... L'application générale est comme ça... Enfin... il s'agit de vérifier les données soumises... Voyez comment vérifier les données soumises par l'utilisateur... Je ne dirai pas grand-chose ici... OK... .

Recommandations associées :

Requête multi-tables thinkphp, la solution parfaite pour deux tables avec les mêmes champs dupliqués 

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn