[英]How to transfer selected values of a form to controller working with zend form
我使用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在船上形成它?
我必須將$serverNamesMenu
數組定義為Associative數組才能獲得語音答案。
$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”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.