我有两个值的选择框,公制和英制。根据我的选择,运行我在控制器中的逻辑:
public function multiplyAction() {
if ($this->getRequest()->getParam('measurement') == 'imperial') {
return Mage::getSingleton('core/session')->setMeasurement('imperial');
} elseif ($this->getRequest()->getParam('measurement') == 'metric') {
return Mage::getSingleton('core/session')->setMeasurement('metric');
} else {
return false;
}
}
控制器工作正常,但它必须只返回值并跳过渲染,而不是它继续URL:... / switcher / switcher / multiply /
我的表格:
<form method="post" action="<?php echo $this->getUrl('measurementswitcher/switcher/multiply'); ?>">
<select onchange="this.form.submit()" name="measurement" title="<?php echo $this->__('Preferred units') ?>" id="select-metric">
<option value="imperial" id="imperial" <?php if ( Mage::getSingleton('core/session')->getMeasurement() === "imperial" ) : ?>selected="selected"<?php endif; ?>><?php echo "Imperial (inch, gallon)" ?></option>
<option value="metric" id="metric" <?php if ( Mage::getSingleton('core/session')->getMeasurement() === "metric" ) : ?>selected="selected"<?php endif; ?>><?php echo "Metric (mm, liter)" ?></option>
</select>
</form>
也许我做错了?或者错过一些重要的部分?谢谢。
答案 0 :(得分:0)
不要忘记隐藏的formkey
值。
<input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
还检查你的网址是否完美无缺。
希望这对您有所帮助。