我正在为一个学校项目建立一个网上商店,我的购物车出了问题。因为购物车和网店在主页上有不同的iframe(主页上有很多图片,不想重新加载,这就是为什么它在iframe中)。
基本上,我的问题是,当在网上商店选择某些内容时,购物车不会更新,直到重新加载整个网页。我将购物车信息存储在SESSION变量中的数组中。基本上,我想要的是在会话变量发生变化时重新加载购物车的iframe。
如果答案涉及除PHP / javascript以外的任何内容,请提供清楚的解释/示例代码,我以前从未使用过PHP / js / html / css之外的任何内容。在此先感谢:)现在已经坚持了几天:S
答案 0 :(得分:0)
创建一个javascript函数,以便在用户向其购物车添加内容时触发以下代码:
document.getElementById('some_frame_id').contentWindow.location.reload();
答案 1 :(得分:0)
我没有在我面前的代码,但是我已经做过类似的事情,在父级中你在“message”上创建一个事件监听器然后在iframe中你可以调用parent.postMessage,只要工作就可以了他们在同一个域名
答案 2 :(得分:0)
虽然APAD1的答案直接解决了你的问题,但听起来你的程序有一些更深层次的设计问题。对同一网站的内容使用iframe(即在一个域内而不是来自单独网站的内容)是不好的做法。
考虑在<div>
s中显示具有唯一ID的内容,并使用javascript更新这些div的内容。如果您在后端使用PHP,则可以创建一个“页面”,仅生成页面的购物车内容部分。您不仅可以在不更改的情况下将其包含在每个页面中,而且可以使用javascript直接加载它并将结果插入当前页面以进行更新。
每当您的用户将商品添加到购物车时,您都可以调用javascript方法,使用购物车的内容刷新<div>
。