Zend控制器/查看新手拼图:$ _GET&$ _POST为空 - 从视图中的HTML表单收到

con*_*sed 2 zend-framework zend-controller zend-view

Zend newbie here ...为了让它变得更好,我的使命是建立在其他人已经存在的Zend网站之上.

(BTW:zf show version - > Zend Framework Version:1.11.1 - 我似乎有Zend_Form).

这是好奇的一点.所有表单都在视图中以HTML格式构建.他们似乎工作,虽然我无法弄清楚 - 特别是考虑到我所看到的.

我遵循惯例并为测试表单创建了一个视图并编写了表单:

<form action="<?php echo $this->url(array('controller'=>'ControllerName','action'=>'submit'));?>" method="post" style="margin-left:20px">
<p class="bold setmgr">Your email here:</p>
<div class="field">
   <input class="text"  type="text name="custEmail"/>
</div>
<div class="field">
   <input class="button" value="Submit and be free!" type="submit"/>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)

控制器中的submitAction成员正确触发.没问题.

但我可以查找POST数据的所有地方似乎都是空的!

        echo "obj  custEmail = [" . $this->_request->getPost('custEmail') . "]\n";
        echo "GET  custEmail = [" . $_GET['custEmail'] . "]\n";
        echo "POST custEmail = [" . $_POST['custEmail'] . "]\n";

        if ($this->_request->isPost()) {
           $data = $this->_request->getPost();
           Zend_Debug::dump($data);
        }
Run Code Online (Sandbox Code Playgroud)

他们都什么都没有.

我不得不寻求解决问题的方法甚至是线索.

谢谢阅读.

Nis*_*ava 8

您的表单格式不正确.因为它是PHP,您可以使用这样的表格,或者您甚至可以生成ZEND_FORM(这是深刻的方式).使用ZEND_FORM是一个很好的做法.如果您仍然想要使用这个和你的方式去,这是我为你修改的片段.

我正在为你修改代码.你的View应该有这个表格;

<form action="" method="post" style="margin-left:20px">
<p class="bold setmgr">Your email here:</p>
<div class="field">
   <input class="text"  type="text" name="custEmail"/>
</div>
<div class="field">
   <input class="button" value="Submit and be free!" type="submit" name="submit"/>
</div>
</form>

<?php
echo $this->custEmail;
?>
Run Code Online (Sandbox Code Playgroud)

现在在ACTIOn上写下以下一个,即submitAction;

public function submitAction()
{
  if ($this->getRequest()->isPost())
  {
    $custEmail = $this->getRequest()->getPost('custEmail');
    echo $custEmail;
    $this->view->custEmail = $custEmail;
  }

}
Run Code Online (Sandbox Code Playgroud)

现在检查它是否适合您.