我有自定义购物车和结帐流程,因此根本不使用sales_quote_ *。就像Magento默认的购物车形式一样,有3个提交按钮:更新购物车,继续购物和结帐。虽然继续购物按钮很简单,但我遇到了更新购物车和结帐按钮的问题。
如果用户单击“更新购物车”,则没有问题,因为我可以将所有表单值捕获到会话中。问题是当用户直接点击Checkout按钮时。那是因为一个表单不能有2个提交按钮。因此,我只是将Checkout按钮重定向到控制器。
因此,如果用户直接点击Checkout按钮,我将无法捕获某些表单值(如User Note,Custom PO等)。当有人离开Magento页面(类似于__contruct())时,是否会有一个魔术方法自动执行?如果是,我想使用这种魔术方法来捕获表单值。
答案 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()
,这只是基本结构。