我想创建一个弹出消息框,在用户订阅简报后显示
"您的订阅已经确认[确定]"
它必须在javascript或jquery中,因为我只想在magento前端区域修改它
它与此帖Magento newsletter succeess message in pop up类似,但它最终没有正确答案和死链接
另一个信息:我的Magento ver。 1.14.1.0
我有一点代码并将其放在subscribe.phtml中,但它无法正常工作
<script type="text/javascript">
var formdata = {'email': jQuery('input[name=email]').val()};
jQuery(document).ready(function() {
jQuery('.btn-subs').click(function(){
jQuery.ajax({
method: "POST",
url: "<?php echo Mage::getBaseUrl() ?>newsletter/subscriber/new/",
data: formdata,
datatype: 'json'
})
.success(function( data ) {
alert( "Your Subscription has been confirmed" );
})
.error(function(data){
alert(data);
console.log(data);
})
});
});
</script>
答案 0 :(得分:0)
Magento的内置通知系统非常精心构建,Inchoo在此广泛解释:http://codepen.io/anon/pen/xEWJKd
我有点猜测这并不是你想要的,因为你明确声明它必须用javascript或jquery完成。您是否意识到magento控制器操作可能基本上停留在同一页面上,但在订阅某人通讯页面后添加通知?
此帖子(http://inchoo.net/magento/magento-frontend/utilizing-magento-notification-system/)帮助我实现了在页面上获取通知,但没有重定向到其他页面,只是重新加载同一页面。
如果你真的坚持只使用js / jquery,我的直觉是一个简单的警报就足够了。默认情况下,这只给你一个'ok'按钮,但我自己并没有看到在动作完成后需要一个'取消'按钮,除非这会取消订阅我想的时事通讯。
如果情况并非如此,您能否提供更多有关您要实现的目标的信息?为什么仅使用js / jquery很重要?
亲切的问候,汤姆
答案 1 :(得分:0)
您可以异步(AJAX)发布到控制器,但默认情况下它不会为您提供任何有意义的验证成功。
您需要做的是扩展newsletter / subscriber / new(不要更新核心文件,任何更新都会擦除您的更改。)
这可能会有所帮助: http://inchoo.net/dev-talk/how-to-extend-magento-core-controller/
基本上,你想要做的是创建一个新的控制器动作,它几乎可以完成现有控制器所做的一切,但不是在完成时重定向,而是应该回显前端的数据,以便在ajax响应中进行解析。此外,您还需要删除通常添加的会话成功消息。 (他们会在下一页加载时显示。)
在现有控制器之后对新控制器进行建模:
应用程序/代码/核心/法师/新闻/控制器/ SubscriberController.php