2

ここでZendの初心者...そしてそれをより良くするために、私の使命は他の誰かの既存の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>

コントローラの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 にフォームを作成する方法が既にある場合は、それを使用する必要があります。あなたの方法はハックのようなものであり、推奨される方法ではありません。

Zend_Form の作成方法については、こちらをご覧ください

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

于 2010-12-05T22:44:03.777 に答える