Magento中是否有一种魔术方法可以在用户离开页面时自动调用?

时间:2014-02-24 21:09:23

标签: php magento

我有自定义购物车和结帐流程,因此根本不使用sales_quote_ *。就像Magento默认的购物车形式一样,有3个提交按钮:更新购物车,继续购物和结帐。虽然继续购物按钮很简单,但我遇到了更新购物车和结帐按钮的问题。

如果用户单击“更新购物车”,则没有问题,因为我可以将所有表单值捕获到会话中。问题是当用户直接点击Checkout按钮时。那是因为一个表单不能有2个提交按钮。因此,我只是将Checkout按钮重定向到控制器。

因此,如果用户直接点击Checkout按钮,我将无法捕获某些表单值(如User Note,Custom PO等)。当有人离开Magento页面(类似于__contruct())时,是否会有一个魔术方法自动执行?如果是,我想使用这种魔术方法来捕获表单值。

2 个答案:

答案 0 :(得分:0)

在JQuery中(我看到你在评论中要求解决),你可以绑定:

$(window).bind('beforeunload', ...

我这里有一些代码,我不记得来自哪里: http://jsfiddle.net/Olavxxx/K4NCM/

答案 1 :(得分:0)

使用jQuery的解决方案如下:

$(window).bind('beforeunload',function() {
   var var1 = $("#element1").val();//maybe .text() depends on the element type and so on..
   $.post('setSession.php',{var1:var1, var2:var2, var3:var3});
});

当然,如果您愿意,可以使用$.get()。您也可以使用$.ajax(),这只是基本结构。

祝你好运!