加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读