我的布局我有搜索表单,所以它显示在每个页面上。 它看起来像这样:
<?
$form = new SearchIndexForm();
$form->setAction($this->configuration['BaseUrl']Index/search);
echo $form; ?>
我想这样:当有人点击提交按钮时,表单会重定向到“索引”控制器上的“搜索”操作,其中处理表单值。
那么,我应该怎么做才能与此相提并论,这将使用post方法从布局中的表单发送数据?
if($this->_request->isPost()){
$formValues = $this->_request->getParams();
if ($form->isValid($formValues)){
...
}
}
有了上述内容,当我点击提交时,它会让我进入/索引/搜索,但没有任何反应......
表单本身在一个动作中完美运行。
答案 0 :(得分:1)
看起来你正在做的一切正确,但我认为你应该改变一些代码。
尝试以下代码
$request = Zend_Controller_Front::getInstance()->getRequest();
//or you can try
//$request = $this->getRequest();
if($request->isPost()){
$form = new SearchIndexForm();
if ($form->isValid( $request->getPost() ) ){
echo 'This should output if the form is valid' . PHP_EOL;
}
}
$request = Zend_Controller_Front::getInstance()->getRequest();
//or you can try
//$request = $this->getRequest();
if($request->isPost()){
$form = new SearchIndexForm();
if ($form->isValid( $request->getPost() ) ){
echo 'This should output if the form is valid' . PHP_EOL;
}
}
我不喜欢像在$ this-&gt; _request中那样直接访问变量,因为Zend可能必须对变量做一些事情以使它们“正确”。我知道有时候什么也没做,但比抱歉更安全。除非你对此持肯定态度,否则我通常不会对此持肯定态度,除非我真的看过代码。