Zend Multiselect Element 仅发布一个选定值
我正在创建像这样的多个选择元素,它在表单上成功显示:
$element = new Zend_Form_Element_Multiselect('clinics');
$element->setLabel("Clinics");
$element->setAttrib( 'style','width: 240px' );
$element->setMultiOptions( array( '1'=>'clinic1', '2'=>'clinic2' ) );
渲染上面的元素后,它在 html 源中显示以下 html:
<select name="clinics[]" id="clinics" multiple="multiple" style="width: 240px" size="5" class="required" tabindex="41">
<option value="1" label="clinic1">clinic1</option>
<option value="2" label="clinic2">clinic2</option>
</select>
但是当我提交时具有两个选定字段的表单和 print_r 结果如下:
$request = $this->getRequest();
$form = new Patient_Form_Patient( $formOptions );
if ( $request->isPost() ) {
if ( $form->isValid( $request->getPost() ) ) {
$values = $form->getValues();
print_r($values);die();
}
}
它仅存储数组中第一个选定的选项,但不存储所有选定的元素:
Array
(
[clinics] => Array
(
[0] => 1
)
[save] => Submit
)
有人可以帮助我如何提交多个价值观?
I am creating multiple select element like this and it is showed successfully on form:
$element = new Zend_Form_Element_Multiselect('clinics');
$element->setLabel("Clinics");
$element->setAttrib( 'style','width: 240px' );
$element->setMultiOptions( array( '1'=>'clinic1', '2'=>'clinic2' ) );
After rendering above element it shows the following html in html source:
<select name="clinics[]" id="clinics" multiple="multiple" style="width: 240px" size="5" class="required" tabindex="41">
<option value="1" label="clinic1">clinic1</option>
<option value="2" label="clinic2">clinic2</option>
</select>
But when I submit the form with two selected fields and print_r the result like this:
$request = $this->getRequest();
$form = new Patient_Form_Patient( $formOptions );
if ( $request->isPost() ) {
if ( $form->isValid( $request->getPost() ) ) {
$values = $form->getValues();
print_r($values);die();
}
}
It stores only first selected option in array but not all selected elements:
Array
(
[clinics] => Array
(
[0] => 1
)
[save] => Submit
)
Can someone help that how can I submit multiple values ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
![扫码二维码加入Web技术交流群](/public/img/jiaqun_03.jpg)
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我已经重建了你的问题,但没有出现这样的错误。您可以在下面看到我做了什么:
Application_Form_Patient
IndexController.php
index.phtml
这是调试输出(一个选定的项目和两个选定的项目)
希望它可以帮助您;)
I have reconstructed your problem and I got no such error. You can see what I did below:
Application_Form_Patient
IndexController.php
index.phtml
here's the debug output (one selected item and two selected items)
Hope it can help you ;)
我认为你的问题是你使用 :
而不是:
I think your problem is that you use :
instead of:
您如何在视图中渲染元素?
根据记忆,如果该元素不是
Zend_Form
的一部分,则需要手动设置其name
属性以包含方括号,例如$element->; setName('诊所[]');
.这通常由父表单或
PrepareElements
装饰器处理(抱歉,记不清了,也无法通过测试来找出答案)How are you rendering the element in your view?
From memory, if the element is not part of a
Zend_Form
, you will need to set itsname
attribute manually to include square brackets, eg$element->setName('clinics[]');
.This is usually handled by a parent form or the
PrepareElements
decorator (sorry, can't remember exactly and can't test this to find out)