需要一个仅存储值的 Zend_Form_Element
我有一系列用于选择列表的选项。
$options = array( 1=>'Option1', 2=>... );
但如果我只有一个选择,我宁愿想要:
一个隐藏的
,其验证器要求发布的值为
2
无输出。该值只会存储在 form_element/form 中,直到
请求$form->getValues()
此代码是我想要的一个非工作示例:($this 是一个 Zend_Form 对象)
$first_val = reset(array_keys($options));
if( count($options) > 1 )
$this->addElement('select', 'opt', array(
'multiOptions' => $options,
'label' => 'Options',
'value' => $first_val,
'required' => true ));
else
$this->addElement('hidden', 'opt', array(
'required' => true,
'value' => $first_val ));
但是,该值不会验证 $first_val
。任何人都可以更改隐藏值,从而允许他们注入无效值。这是不可接受的。
帮助?
I have an array of options for a select list.
$options = array( 1=>'Option1', 2=>... );
But if I only have one option, I rather want either:
A hidden
<input type="hidden" name="opt" value="2"/>
with a validator requiring the posted value to be2
No output. The value will only be stored in the form_element/form until requested by
$form->getValues()
This code is a non-working example of what I want: ($this
is a Zend_Form object)
$first_val = reset(array_keys($options));
if( count($options) > 1 )
$this->addElement('select', 'opt', array(
'multiOptions' => $options,
'label' => 'Options',
'value' => $first_val,
'required' => true ));
else
$this->addElement('hidden', 'opt', array(
'required' => true,
'value' => $first_val ));
However, the value will not validate to $first_val
. Anyone may change the hidden value, allowing them to inject invalid values. This is not acceptable.
Help?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的代码缺少验证器,例如 Zend_Validate_Identical
your code is missing a validator, e.g. Zend_Validate_Identical
我创建了一个自定义 Zend_Form_Element ,它完全符合我的要求。也许其他人可能会发现它有用:
I created a custom Zend_Form_Element that does exactly what I want. Maybe someone else might find it useful: