首頁 >後端開發 >php教程 >Zend_Form元件實作表單提交並顯示錯誤提示的方法

Zend_Form元件實作表單提交並顯示錯誤提示的方法

不言
不言原創
2018-06-07 13:34:121524瀏覽

這篇文章主要介紹了Zend_Form元件實作表單提交並顯示錯誤提示的方法,結合實例形式詳細分析了Zend_Form元件的使用方法與實作表單提交的具體操作步驟,需要的朋友可以參考下

本文實例講述了Zend Framework教程之Zend_Form元件實作表單提交並顯示錯誤提示的方法。分享給大家供大家參考,具體如下:

同時公司又要開發一個群組功能..我也就想運用一下Zend_Form來實現創建群組的功能.主要還是看中Zend_Form可以在寫Form時候.實作伺服器端的驗證功能..省得我們在把資料提交到資料庫的時候再驗證一次..所以呢.我就看了一下這方面的手冊..透過Zend Framework手冊找到了相關的使用說明. ..最簡單的使用方式就是在控制器(Controller)裡寫一個現成的Action,這樣..在這個控制器裡就可以直接使用這個Action...程式碼可以如下:

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

當然..我也可以把這個Form專門寫成一個類別...存放在一個forms共同的目錄下.這樣就方便我們管理我們所有的Form表單..我的實作方式就是把它放在和控制器(Controller )的同一層級的目錄下...這樣管理起來也方便..當然不同的朋友..有不同的想法...另一種方式..就是可以把它寫成View Helper...這個方式實現起來,,也很方便..這裡我就不想多寫了...Zend Framework實現起來很方便...只要你想的到...無論你怎樣完成你的任務,,都是可以的..在這裡我就不多說其它的...我只想談一下怎樣讓Zend_Form實現中文的提示信息功能...我這裡有二種方法..

第一:比較笨的方式就是:如果你的網站不要做成多國語言的網站..同時你的Zend Framework版本不是經常更換的話...你就可以找到相關提示訊息的源碼...更改成中文的提示.

這個笨方法..實在是沒有辦法的辦法...呵呵...

第二:我也是在英文站...看到的一個比較好的方式,就是透過重寫這個提示訊息.把它換成我們想要的語言...這樣...就算我們會去換語言..或是換Zend Framework的版本..

對我們的影響也不是很大....我們只要更改一下我們的Form的表單就可以搞定了..現在這種方式的程式碼如下(我這裡只寫了Email提示訊息..其它的不要多寫出):

<?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這個組件還有一個比較重要的功能..就是Zend_Form_Decorator..手冊上稱為裝飾器,也就是說你可以自己寫你想要的裝飾器..比如說..你要把你的Form用Table包含起來..我們要怎樣實現呢?這個時候..我們就要用到比如說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;);
?>

哈哈....大致的運用就是這樣了...最後..就是驗證提交的資料了...看如何驗檢驗使用者提交的資料....這裡就不多說了...OK...

相關建議:

thinkphp多表查詢兩表有重複相同欄位的完美解決方法     

##

以上是Zend_Form元件實作表單提交並顯示錯誤提示的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn