0

私はフォームZendでビューを持っていますPHP:

<form action="https://example.com/checkout/" name="info" method="post"> 
    <div id="payment">
        <div id="paypal>
            <?php $this->is_paypal_payment = true; ?>
        </div>
        <div id="credit_card>
            <?php $this->is_paypal_payment = false; ?>
        </div>
    </div>
</form>

ユーザーが送信ボタンをクリックしたときに、コントローラーでインスタンス変数を設定するにはどうすればよいですか?

これは私が試したもので、うまくいきませんでした。

コントローラ:

$this->view->payment_option_paypal = false;  // initialized value

$payment_method_option = $this->_getParam('payment_option_paypal', null);
if (!is_null($payment_method_option)) {
   if ($payment_method_option == 'paypal') {
       $this->_is_paypal = true;
   }
}

意見:

<div id="paypal" style="display: none;">
    <?php $this->payment_option_paypal = "paypal"; ?>
    <img src="paypal.gif" style="margin-right:20px;">
</div>

送信をクリックした後、the _getParam()関数は、ビューがコントローラーのインスタンス変数に設定した文字列「paypal」をキャプチャしません$this->payment_option_paypal

何が間違っていて、どうすればいいですか?

4

2 に答える 2

2

あなたのphtmlページでは、このように使用する必要があります

<div id="paypal" style="display: none;">
    <input type="hidden" name="paypalname" value="<?php echo $this->payment_option_paypal = "paypal"; ?>" id="paypalname"/>
    <img src="paypal.gif" style="margin-right:20px;">
</div>

そしてコントローラー

function yourAction()
{
      if ($this->_request->isPost()) 
      {
         $paypalvalue=$this->_getParam('paypalname');
      }
}

お役に立てば幸いです。私の回答に問題がある場合は、お知らせください。

于 2012-08-07T05:55:17.770 に答える
1

div はデータを送信しません。また、html としてレンダリングする必要があるものはすべてエコーする必要があります。

<form action="https://example.com/checkout/" name="info" method="post"> 
    <div id="payment">
        <div id="paypal>
            <?php echo $this->is_paypal_payment = true; ?><!-- maybe should be an input element of kind and echo the $this-> statement -->
        </div>
        <div id="credit_card>
            <?php echo $this->is_paypal_payment = false; ?><!-- maybe should be an input element of kind and echo the $this-> statement -->
        </div>
    </div>
</form>

再びエコー:

<div id="paypal" style="display: none;">
    <?php echo $this->payment_option_paypal = "paypal"; ?>
    <img src="paypal.gif" style="margin-right:20px;">
</div>
于 2012-08-07T06:08:08.533 に答える