我创建了一个自定义表单,类似于客户注册表单,在Magento
. 当出现错误消息时,我想预先填充此表单。
有谁知道我可以如何预填充自定义表单Magento
?
如果没有看到您的代码,很难说哪种方法会起作用,但是其中一种方法应该起作用。
使用 JavaScript 验证- 客户端验证,只有在所有需要的信息都正确时才发布
<form name="my-form" id="my-form" method="post">
<label for="username">
< ?php echo $this->__("User name") ?> <span>*</span></label><br />
<input type="text" id="username" name="username" class="input-text required-entry"/>
.....
</form>
<script type=”text/javascript”>
//< ![CDATA[
var customForm = new VarienForm('my-form');
//]]>
</script>
查看所有验证类名称的列表
重新填充字段 获取客户填写的所有帖子变量信息的列表
Mage::app()->getRequest()->getPost();
获取表单域(例如<input type='text' name='firstname' ... />
)
Mage::app()->getRequest()->getPost('firstname');
所以在你 .phtml 中尝试(如果你在错误时进行重定向,这将不起作用)
<input type='text' name='firstname' value="<?php echo Mage::app()->getRequest()->getPost('firstname');?>" />
如果上述方法不起作用,那么您需要将帖子信息保存到会话中。
如果验证失败,则在您的控制器中将信息保存到客户会话
Mage::getSingleton( 'customer/session' )->setData( 'yourFormName', Mage::app()->getRequest()->getPost() );
在您的 phtml 模板中,如果存在“yourFormName”变量会话,则打印数据。