我在PHP
中有一个Zend
视图,带有一个表单:
<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
任何想法出了什么问题以及如何解决这个问题?
在你的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');
}
}
我希望它对您有所帮助,如果您对我的回答有任何问题,请告诉我。
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>