在关于如何解决我的一个问题(http://stackoverflow.com/questions/13609611/using-several-modules-in-the-same-view)的一些问题之后,我还有另一个问题。
我在视图助手中创建了一个表单,因为我需要在另一个控制器中访问此表单的结果。
所以这是我的视图助手,名为 QuickSearch.php
class Zend_View_Helper_QuickSearch extends Zend_View_Helper_Abstract
{
public function quickSearch()
{
$form = new Application_Form_QuickSearchForm();
return $form;
}
}
调用 QuickSearchForm.php
class Application_Form_QuickSearchForm extends Zend_Form
{
public function init()
{
$this->setMethod('post');
$this->setAction('/search/quicksearch');
$this->addElement('text', 'searchLocation', array(
'label' => 'Location:',
'required' => true,
'filters' => array('StringToUpper')
));
//[some other elements]
$this->addElement('submit', 'submit', array(
'ignore' => true,
'label' => 'Search',
));
}
在我的主页视图中,我调用 viewhelper
echo $this->quickSearch();
哪个有效,因为我可以访问我的表格。
当我提交表单时, /search/quicksearch 被调用,但是当我尝试从表单访问数据时,它似乎是空的。
这是我的搜索控制器(SearchController.php)
class SearchController extends Zend_Controller_Action
{
public function init()
{
/* Initialize action controller here */
}
public function indexAction()
{
// action body
}
public function quicksearchAction()
{
$form = new Application_Form_QuickSearchForm();
if ($this->getRequest()->isPost())
{
echo("post");
$data = $form->getValues();
echo($data['searchLocation']);
}
}
}
我放了 echo("post") 来查看我是否收到了 POST 请求,并且每次都有效。唯一显示的是“帖子”,第二个回声不显示任何内容。
我不知道从另一个控制器获取表单数据的方式我不明白什么。
有人可以帮我弄这个吗 ?我只是不知道为什么它不起作用。