>  기사  >  백엔드 개발  >  Zend_Form 구성 요소는 양식 제출을 구현하고 오류 프롬프트를 표시합니다.

Zend_Form 구성 요소는 양식 제출을 구현하고 오류 프롬프트를 표시합니다.

不言
不言원래의
2018-06-07 13:34:121434검색

이 글에서는 주로 Zend_Form 컴포넌트의 폼 제출 구현 방법과 오류 메시지 표시 방법을 소개하고, Zend_Form 컴포넌트의 사용법과 예제 폼을 기반으로 폼 제출을 구현하는 구체적인 단계를 분석합니다.

이 문서의 예제는 Zend Framework 튜토리얼의 Zend_Form 구성 요소를 사용하여 양식 제출을 구현하고 오류 프롬프트를 표시하는 방법에 대해 설명합니다. 참고하실 수 있도록 자세한 내용은 다음과 같습니다.

동시에 회사에서는 그룹 기능을 개발하고 싶습니다. 또한 Zend_Form을 사용하여 그룹 생성 기능을 구현하고 싶습니다. Zend_Form은 Form 작성 시 구현할 수 있는데, 서버 측 검증 기능을 이용하면 데이터를 데이터베이스에 제출할 때 다시 검증할 필요가 없어져서 이 부분에 대한 매뉴얼을 살펴보니 Zend Framework를 통해 관련 내용을 찾았습니다. 수동... 가장 간단한 사용 방법은 컨트롤러(Controller)에 미리 만들어진 액션을 작성하여... 이 컨트롤러에서 직접 이 액션을 사용할 수 있도록 하는 것입니다... 코드는 다음과 같습니다.

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

물론... 이 양식을 넣을 수도 있습니다. 특별히 클래스로 작성되어 양식의 공통 디렉토리에 저장되므로 제가 구현한 방식으로 모든 양식을 관리하는 것이 편리합니다. 컨트롤러(Controller)와 같은 레벨의 디렉터리에 두는 것이지요..이것도 관리하기 편리합니다..물론 친구마다 생각이 다르죠...또 다른 방법은 뷰헬퍼로 작성하는 방법입니다...이것 메소드는 구현하기에도 매우 편리합니다..여기서 더 이상 쓰고 싶지 않습니다...Zend Framework는 구현하기 매우 편리합니다...생각만 하면...작업을 어떻게 완료하든 관계없이 가능합니다...여기서 더 이상 말하지 않겠습니다...Zend_Form이 중국어 프롬프트 정보 기능을 실현하도록 하는 방법에 대해 이야기하고 싶습니다...여기에는 두 가지 방법이 있습니다...

첫 번째: 어리석은 방법 즉, 귀하의 웹사이트가 다국어 웹사이트가 되지 않는 경우 ..동시에 Zend Framework 버전이 자주 변경되지 않는다면...관련 프롬프트 정보의 소스 코드를 찾을 수 있습니다...프롬프트를 다음으로 변경하세요 중국어.

이 멍청한 방법...정말 다른 방법이 없군요...ㅋㅋㅋ...

둘째: 저도 영어 사이트에서 봤는데...더 좋은 방법은 이 프롬프트 메시지를 다시 작성하는 것입니다. 우리가 원하는 언어로...이렇게...언어를 바꾸거나...Zend Framework의 버전을 바꾸더라도...

우리에게 미치는 영향은 크지 않을 것입니다...우리는 단지 양식의 형식을 변경하면 완료됩니다. 이제 코드는 다음과 같습니다(여기에는 이메일 프롬프트 정보만 썼습니다. 너무 많이 쓰지 마세요):

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

Zend_Form 구성 요소도 마찬가지입니다. 더 중요한 기능이 있습니다. 매뉴얼에서는 데코레이터라고 합니다. 즉, 원하는 데코레이터를 작성할 수 있습니다. 예를 들어, 테이블을 포함시키려면 어떻게 해야 할까요? 이때 우리가 원하는 기능을 구현하려면 HtmlTag, Label 등의 데코레이터를 사용해야 합니다. 이는 더 중요한 개념입니다. 관심 있는 친구들은 가서 살펴볼 수 있습니다. Zend_Form 컴포넌트를 사용하고 싶습니다... 데코레이터를 사용하기 어려울 것이므로 원하는 폼 기능을 만들기 전에 이 점을 알아야 합니다. 마지막으로 데코레이터를 약간만 사용하는 것입니다.

작은 함수만 구현해보겠습니다..다음 코드는

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

하하....일반 ​​응용프로그램은 이렇습니다...드디어...제출된 데이터를 검증하는 것입니다...검증하는 방법을 알아보세요. 사용자가 제출한 데이터....여기에는 많지 않습니다...알겠습니다...

관련 권장 사항:

thinkphp 다중 테이블 쿼리, 중복된 동일한 필드가 있는 두 테이블을 위한 완벽한 솔루션​​​​​

위 내용은 Zend_Form 구성 요소는 양식 제출을 구현하고 오류 프롬프트를 표시합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.