在Magento中填写某些表单元素出错的情况下,如何获取预先填写的表单?
我有一个自定义模块的形式类似于联系人的形式,但它有recaptcha。因此,客户需要插入验证码以及其他必填字段。
假设客户在填写recaptcha时出错,那么他们将被重定向到同一页,但我看到表单数据在重定向后消失了。所以我想要的是保留表单域,这样他们就不需要一次又一次地填充它们。
任何帮助都将是非常值得感谢的。
谢谢
发布于 2015-03-03 21:59:39
Magento处理这种情况的方法是通过会话。存储在会话中的数据将在整个请求过程中保持不变,您将能够在以后使用这些数据(在重定向、页面更改等之后)。
相反,对于单个请求,您可以查看如何使用Magento注册表方法Mage::register()/Mage::registry()。当你需要在相同的请求(无重定向)上保存数据时,可以使用,例如,在使用“保存并继续注册表”按钮时,可以在后端模块上保存数据。
要使用会话:使用以下命令在客户会话中设置一些数据(如果需要,还可以设置另一个会话):
Mage::getSingleton('customer/session')->setData('myDataName', $myData);例如,当发布数据时,如果您在某种postAction中,您将把发布的数据存储在客户会话中。
例如:
$post = $this->getRequest()->getPost();
Mage::getSingleton('customer/session')->setData('postedData', $post);然后,您可以使用以下命令检索该数据
$myData = Mage::getSingleton('customer/session')->getData('postedData');然后在你的前端表单中使用这些数据:
<input value="<?php echo $myData->getName()?>" type="text"/>发布于 2011-08-07 17:01:42
通过使用以下命令获取这些值:
$myParam = $this->getRequest()->getParam('my_param');或使用
$params = Mage::app()->getRequest()->getParams(); 然后把它填到你的表格里。
https://stackoverflow.com/questions/6966594
复制相似问题