我使用zend表单获取一些用户输入(参数)。用户可以从以下选项中选择数字{1、4、12、15)。 $this->getRequest();
返回我的发帖请求。但是我只得到所选值的“ id”。例如,用户选择12个$this->getRequest();
postParams-> ArrayObject *存储编号='2'
我阅读了文档找不到内容。
表单类
class ServerBoardForm extends Form
{
public function __construct($name = null)
{
$this->add([
'type' => Element\Radio::class,
'name' => 'server',
'options' => [
'label' => 'Server',
],
]);
$this->add([
'type' => Element\Select::class,
'name' => 'timeframe',
'options' => [
'label' => 'Zeitspanne in Stunden',
'value_options' => [
'0' => '1',
'1' => '12',
'2' => '24',
'3' => '48',
],
],
]);
$this->add([
'name' => 'submit',
'type' => 'submit',
'attributes' => [
'value' => 'Go',
'id' => 'submitbutton',
],
]);
}
}
html
<?php
$this->form->setAttribute('action', $this->url('test'));
$this->form->setAttribute('method', 'post');
$this->form->prepare();
echo $this->form()->openTag($this->form);
echo $this->formSelect($this->form->get('timeframe'));
echo $this->formSubmit($this->form->get('submit'));
echo $this->form()->closeTag();
?>
控制器
$form = $this->repository->buildMenu();
$formRequest = $this->getRequest();
存储库
public function buildMenu(){
$form = new ServerBoardForm();
$form->get('submit')->setValue('Show');
return $form;
}
我希望输出为12,但实际输出为3。
建议的答案对我没有帮助,因为我的表单元素没有方法getElement
也没有这样的列表。我仅有的列表绑定到'value_options' => $serverNamesMenu,
。用户可以从此列表中选择服务(字符串)。该列表显示在视图中。该列表在视图中的显示方式起作用。
正如我在这里已经指出的,这就是我如何定义选择元素的方法。
$form->add([
'type' => Element\Radio::class,
'name' => 'server',
'options' => [
'label' => 'Server',
'value_options' => $serverNamesMenu,
],
]);
由于没有方法getValue_Options
,如何读取用户选择的内容,并将其存储在哪里?
我使用
在控制器中获取数据$data = $this->params()->fromPost();
$form->setData($data);
$hallo = $form->get('server');
我可以做到
$hallo = $form->get('server')->getValue();
并获得“ 1”。我想要一个返回用户已看到并选择的字符串的方法。我认为我需要方法getValueOptions
或getOptions->getValueOptions
。我需要自己构建它还是Zend在船上形成它?
答案 0 :(得分:0)
我必须将$serverNamesMenu
数组定义为关联数组才能获得口头回答。
$form->add([
'type' => Element\Radio::class,
'name' => 'server',
'options' => [
'label' => 'Server',
'value_options' => $serverNamesMenu,
],
]);
由于我的$serverNamesMenu
的结构为0 =>'server1',1 =>'server2',因此它仅返回“ 1”。
$serverNamesMenu
应该看起来像'server1'=>'server1',
'server2'=>'server2'。
现在$hallo = $form->get('server')->getValue();
返回我“ server2”