如何在Magento中提交表单错误后预填充自定义表单?

时间:2011-08-06 11:47:43

标签: forms magento

如果在填写Magento中的某些表单元素时出错,我怎样才能获得预先填好的表格?

我有一个自定义模块,表单类似于联系人表单,但它有recaptcha。因此,客户需要插入验证码以及其他必填字段。

假设客户在填写recaptcha时出错,因此他们将被重定向到同一页面但我看到表单数据在重定向后消失了。所以我想要的是保留表单字段,这样他们就不需要一次又一次地填充它们。

任何帮助都会非常明显。

由于

2 个答案:

答案 0 :(得分:0)

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"/>

答案 1 :(得分:-2)

使用以下方法获取值:

$myParam = $this->getRequest()->getParam('my_param');

或使用

$params = Mage::app()->getRequest()->getParams(); 

并填写表格。