标签:php zend-framework zend-form
我有一个带下拉字段的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);
}
}
标签:php,zend-framework,zend-form 来源: https://codeday.me/bug/20190704/1377282.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。