0

挨拶します。{{Solved}} POST データを取得するには、すべてのデータを保持するために $this->formHidden を使用する必要があります。変数は の中にありますが、ある種のフォーム項目にない場合は渡されません。

ZEND で投稿データにアクセスできません。

ユーザーのパス - START INDEX PAGE -> 送信ページ -> 有料ページ

コントローラーを作成し、Zend コントローラーを拡張して、payAction というアクションを追加しました。ユーザーは、インデックス ページから送信ページに移動できます。すべてのデータを変数内に配置した後、フォームと送信ボタンを使用して「支払いページ」に移動しました。ただし、POST データを取得できません。

public function payAction()
{
 $data = $this->getRequest();
}

そのコントローラー関数内に getRequest、getParam、getRawBody を入れてみました。ページ自体で私は試しました。

echo 'Hello';
   echo $request;
   echo $data;
   echo $_POST['payZip'];
   echo $_POST['data'];
   echo $_POST[$data];
   echo $request;
   echo $this->values['payZip'];
   echo $payZip;
   echo $this->values['shippingDone'];
   echo $stuff;

投稿データを取得するために、コントローラーまたはビューに配置できるものはありますか? form method="post" とボタンを使用したところ、ページにアクセスできました。こんにちは。しかし、投稿データはどれも利用できません。

任意の支援をいただければ幸いです。

ありがとうございました。

- アップデート

    $data = $this->getRequest();
    $param = $this->_request->getParam('payZip');

    if($this->getRequest()->isPost())
    {
    print_r($this->_getAllParams());
    echo $param;
    }

それを行うと、HelloArray([コントローラー] =>ホイール[アクション] =>支払い[モジュール] =>デフォルト[配送] => UPS Ground [payPal] => Secure Payment System)が得られます

しかし、まだpayZipを印刷できません...エコーをしても何も出力されません。

4

1 に答える 1

1

Zend Framework からパラメーターを取得するには、アクション コントローラーでこれを行う必要があります。

$data = $this->_request->getParams();

このような個々のパラメーターを取得することもできます

$param = $this->_request->getParam('payZip');

あなたが間違っているように見えるのは、「リクエストオブジェクト」しか取得していないことです。次に、そのオブジェクト メソッドを呼び出して、要求データを取得する必要があります。

パラメータをテストするときによく使用する簡単なコードを次に示します。

public function indexAction()
{
    #::DEBUG:: 
    echo '<pre>'; print_r($this->_request->getParams()); echo '</pre>';
    #::DEBUG:: 
}

これにより、すべてのパラメータが表示されます。パラメータを使用して、モジュール、コントローラ、およびアクションの名前も取得することに気付くでしょう。

編集

Ps。ビュー スクリプトでパラメータを使用しようとしている場合は、次のようにする必要があります。

echo $this->data['payZip'];

echo $this->param;

アクション コントローラーで、次のようにしてデータを「ビュー」オブジェクトに保存します。

$this->view->myVariable = 'Hello';

しかし、ビュー スクリプトにいるときは、ビュースクリプトにいるので、アクション コントローラーから$this表されます。$this->view

したがって、次のように変数にアクセスします。

echo $this->myVariable;

理解するために、すべてをより大きなコード チャンクにラップします。

あなたのコントローラー

public function indexAction()
{
    // get all parameters and pass them to the view
    $this->view->params = $this->_request->getParams();
    // get an individual parameter and pass it to the view
    $this->view->payZip = $this->_request->getParam('payZip');
}

あなたのビュースクリプト

<!-- Dump all parameters -->
<pre><?php print_r($this->params); ?></pre>
<!-- Print payZip -->
<p>My PayZip is: <?php echo $this->payZip; ?></p>
<!-- Print payZip from full parameter array -->
<p>My PayZip (array) is: <?php echo $this->data['payZip']; ?></p>

それが役立つことを願っています!

于 2012-08-09T20:29:57.993 に答える