Json Magento从observer签出时显示div

Json Magento从observer签出时显示div,json,magento,checkout,Json,Magento,Checkout,我正在编写一个自定义Magento模块,以检查来宾用户是否正在使用已注册的电子邮件地址。 该模块使用控制器\操作\预分配\签出\一页\保存账单观察员进行检查。 我正在努力解决的是如何在账单面板底部的某个地方显示或动态插入带有错误消息的div。 观察器工作正常,但现在我一直在向用户显示错误。我使用了下面的方法来显示JS警报,但我现在需要包括一个可点击的链接 $response = array('error' => -1, 'message' => Mage::helpe

我正在编写一个自定义Magento模块,以检查来宾用户是否正在使用已注册的电子邮件地址。 该模块使用控制器\操作\预分配\签出\一页\保存账单观察员进行检查。 我正在努力解决的是如何在账单面板底部的某个地方显示或动态插入带有错误消息的div。 观察器工作正常,但现在我一直在向用户显示错误。我使用了下面的方法来显示JS警报,但我现在需要包括一个可点击的链接

        $response = array('error' => -1, 'message' => Mage::helper('core')->__($errorMsg));
        return $controller->getResponse()->setBody(Mage::helper('core')->jsonEncode($response)); 
有没有办法做到这一点


谢谢

您可以在控制器中注册错误消息,并在模板文件中检查它

因此,在控制器中:

 Mage::register('error_msg', $myErrorMsg);
然后在模板文件中:

 $errorMsg = Mage::registry('error_msg');
 if(!is_null($errorMsg)):
      //do your magic here
 endif;
我认为:

1在输入帐单地址后,在“继续”按钮上创建您自己的jquery单击功能

2在电子邮件输入下方创建一个div,其中没有文本。请隐藏此div

3当用户填写账单详细信息并单击“继续”时,向您的自定义控制器发送ajax请求

4检查客户是否已经存在该电子邮件id,如果是:将电子邮件id设置为空并使步骤2中的div可见,并在其innethtml文本中添加警告消息。添加e.preventDefault以防止magento的默认操作

5如果电子邮件id不存在。返回true,它将继续magento的默认操作


任何会话设置获取变量都有点困难,因为签出的大部分工作都是由AJAX完成的,而无需刷新页面。

这似乎是一个比我尝试的好得多的主意!!谢谢:很高兴它有帮助,我总是喜欢保持默认的magento不变。只需进行上层自定义验证,即可使事情顺利进行,而不会影响内部工作流: