Magento 提交页面后维护弹出窗口

Magento 提交页面后维护弹出窗口,magento,popup,Magento,Popup,我的客户端正在使用,单击submit按钮后,表单提交给控制器,然后重新加载同一页面。他问我的是,一旦他点击提交按钮,他希望显示一个弹出窗口。因此,我使用了一个背景被禁用的div作为动态弹出窗口(JavaScript),但由于按钮是“提交”,页面会刷新,我会丢失弹出窗口,因此即使在提交后也可以保持该div的显示吗?

我的客户端正在使用,单击submit按钮后,表单提交给控制器,然后重新加载同一页面。他问我的是,一旦他点击提交按钮,他希望显示一个弹出窗口。因此,我使用了一个背景被禁用的div作为动态弹出窗口(JavaScript),但由于按钮是“提交”,页面会刷新,我会丢失弹出窗口,因此即使在提交后也可以保持该div的显示吗?

$(document).ready(function(){
    $('#form_selector').submit(function(){
        showDialog();
        //stop submit
        return false;
    });
    $('#dialog_button_selector').click(function(){
        //submit form
        $('#form_selector').submit();
    });
});

我不熟悉Magne,但一般来说,当页面重新加载并调用弹出窗口时,您不能在控制器中查找表单提交吗?如果是,为什么不使用滑动面板而不是弹出面板

例如,检查Magento的功能:

<?php
if ($this->helper('customer')->isLoggedIn() ) {
    echo "Welcome!";
} else {
    echo "Please log in.";
}
?>

如果记录了客户,请在滑动面板内显示客户的必要信息

如果只想一次显示此面板,请尝试使用magento的事件观察者方法:

app/code/core/Mage/Customer/Model/Session.php

事件名称:

  • 客户登录
  • 客户会话初始化
对于jQuery滑动面板,您可以使用jqEasy,它支持
showOnLoad
属性


如果您不想保留页面提交,则基本上需要在页面提交后回显弹出窗口。因此,使用一些通用事件(
catalog\u product\u add\u to\u cart\u after
),添加如下会话变量:

public function observer($event) {
    Mage::getSingleton("customer/session")->setNeedsCartPopup(true);
}
然后,在模板中,您可以检查此变量是否存在,以显示弹出窗口:

$session = Mage::getSingleton("customer/session");
if($session->getNeedsCartPopup()) {
    $session->->setNeedsCartPopup(false);
    // echo HTML to display popup as the page loads
}
这不是经过测试的代码,但它应该为您提供如何捕获事件并在模板中响应事件的要点。希望有帮助

谢谢,
Joe

谢谢您的回答,但我不想在点击弹出窗口之前保留提交,它不是确认弹出窗口,这是一个电子商务网站弹出窗口显示客户购买的产品的详细信息以及其他页面的一些链接,我需要提交发生,以便将产品添加到购物车,我想保持即使提交后弹出窗口,如如果网站被禁用,只是div弹出窗口是活动的。我希望我可以找到控制器!我会立即删除重定向指令!我也不喜欢框架。。。这个MVC很难遵循。我尝试在会话中存储值,然后当页面重新加载时,我显示会话中包含数据的DIV,但我遇到了另一个问题,一些数据是客户端的,我无法将它们存储到会话中,并且我无法发布它们,正如我告诉你的,我不想弄乱magento core。这听起来很复杂/愚蠢,但我一直在尝试做的事情或我脑海中的想法是在提交之前/之后显示一个div。这是可以通过AJAX提交的东西吗?这将避免离开页面,从而保留状态。在客户登录后,弹出窗口不会显示,而是在他单击“添加产品”后显示。它只是同一页中的一个div。它的目的是显示购买产品的详细信息、名称、价格和数量,以及几个链接。因此,一旦看到客户端单击按钮,表单sunmits和我就会丢失弹出窗口,因为控制器会重定向到其他页面。