php – Zend_Form手动设置和验证字段值
发布时间:2020-12-13 16:15:04 所属栏目:PHP教程 来源:网络整理
导读:我有一个带下拉字段的Zend_Form. 当用户在URL中设置一个值时,应该在此下拉列表中选择此值作为默认值. 所以我现在所做的是: $parlang = $this-getRequest()-getParam('lang');if($parlang){ $this-view-filterForm-getElement('ddLanguage')-setValue($parla
我有一个带下拉字段的Zend_Form.
当用户在URL中设置一个值时,应该在此下拉列表中选择此值作为默认值. 所以我现在所做的是: $parlang = $this->getRequest()->getParam('lang'); if($parlang){ $this->view->filterForm->getElement('ddLanguage')->setValue($parlang); } if ($this->getRequest()->isPost()) { if($this->view->filterForm->isValid($_POST)){ ... ... ... 不,我想检查变量的值是否甚至是下拉列表的有效值?我如何通过表单验证来检查这个问题.是的我可以根据数组检查变量,但这似乎是“与框架作斗争”. 那么Zend如何做这样的事情呢? 编辑: $parlang = $this->getRequest()->getParam('lang'); if($parlang){ $ddLanguage = $this->view->filterForm->ddLanguage; if($ddLanguage->isValid($parlang)){ $ddLanguage->setValue($parlang); $language = $parlang; } } 解决方法
我运行了一个快速测试,看起来你可以使用的一个方法是Zend_Form_Element_Select :: getMultiOption()来检查选择值中是否存在该语言.
<?php $parlang = $this->getRequest()->getParam('lang'); if ($parlang) { $el = $this->view->filterForm->getElement('ddLanguage'); // attempt to get the option // Returns null if no such option exists,otherwise returns a // string with the display value for the option if ($el->getMultiOption($parlang) !== null) { $el->setValue($parlang); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |