2

Zend 新手在这里......为了让它变得更好,我的任务是建立在其他人预先存在的 Zend 站点之上。

(顺便说一句: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>

控制器中的 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);
        }

他们都什么都不生产。

我非常有责任寻求解决方案,甚至是关于出了什么问题的线索。

谢谢阅读。

4

2 回答 2

8

您的表单格式不正确。因为它是 PHP,您可以使用这样的表单,或者您甚至可以生成 ZEND_FORM(这是一种非常有效的方法)。使用 ZEND_FORM 始终是一个好习惯。如果您仍然想要使用这个和你的方式,这是我为你修改的片段。

我正在为您修改代码。您的视图中应该包含此表单;

<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;
?>

现在在你的 ACTION 上写下以下内容,即 submitAction;

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

}

现在检查它是否适合您。

于 2010-12-07T05:51:17.937 回答
1

使用 Zend_Form 创建一个表单。当 ZF 已经有了创建表单的方法时,您应该使用它。您的方法就像 hack,不是推荐的做事方式。

在此处查看如何创建 Zend_Form

http://framework.zend.com/manual/en/zend.form.html

于 2010-12-05T22:44:03.777 回答