2013-05-05 99 views
2

我有一系列链接,每个链接都属于不同价格的不同产品。javascript,html onclick更改变量

例如:用户点击产品链接之一

<%a class="items" href="order.htm" alt="" onclick="javascript: num = 149.99">Content<%/a> 

后,我想能够显示特定产品的价格订购页面上。是否可以保存更改后的变量以便在单独的订单页面上使用?如果是这样,怎么样?

这纯粹是为了我个人对JavaScript和HTML5的探索。

编辑:好吧,所以使用sessionStorage,我可以设置和获取变量。

如:

myVar = window.sessionStorage; 
myVar.setItem("key", "149.99"); 

现在,我将如何整合与产品连结的变种,然后调用以下页面上的变种?

+1

你尝试过什么吗?你能向我们展示一些测试吗?也许有些代码? – steo 2013-05-05 20:32:56

+0

请不要在浏览器中存储价格信息。你**会遇到一种情况,人们可以免费购买你店里的所有东西,并获得5美元的回报。所有不应该被篡改的数据(例如购物车内容)应始终保持安全地存储在服务器端,并在每次页面重新加载时传回给客户端。 – 2013-05-05 21:20:06

+0

感谢您的信息。但是,这仅仅是一个原型,不会用于任何货币交易。 – user2352728 2013-05-05 21:28:12

回答

2

如果您正在创建购物页面,我肯定会建议您添加一些PHP。 只有JS和HTML,你会遇到许多问题,你将不得不寻找解决方法。

使用服务器端存储,比如PHP的$_SESSION superglobal。任何客户端存​​储都可能被操纵。你说你不是在发布它,而是保持它干净,不要以更糟糕的方式学习自己。

不管怎么说,如果你只是想要得到这份工作,这里有来存储数据,并得到它之后的命令:

//store data on the initial page using setItem() 
sessionStorage.setItem("mykey", "Some Value"); 

//on the next page get it with getItem() and declare it as a var 
var persistedval = sessionStorage.getItem("mykey"); 
­ 
//Now you can write the price to the document using the variable 
document.write("Total is: " + persistedval); 

值可以使用任意的getItem()和setItem()来设置和检索,或者直接引用该键作为对象的属性,就像我上面的示例一样。

但请记住,sessionStorage不是很安全,因为它存储在浏览器会话中。假设你甚至忘记了你的价格validaton检查和一些'黑客'操纵数据并将价格从45,99改为-249,99,产品名称改为Credit note

如果您想深入购物页面,用户区域等,您应该首先关注HTML + PHP,并在需要时使用JS(当您开始使用时,主要是DOM操作)。

但是,存储用户登录信息,任何用户特定的数据或不敏感的数据都是非常好的,对此毫无疑问。

希望这会有所帮助。

+0

谢谢。因此,使用sessionStorage设置器和getter,我设置了变量的值,然后在下一页获取该变量的值,如document.write(“Total is:”+ sessionStorage.getItem(“key”)) ; ? – user2352728 2013-05-06 01:10:18

+0

我会将它声明为var。看看上面,我编辑了我的帖子。 – 2013-05-06 02:37:03

+0

Whe,这有所帮助。谢谢你,先生。 – user2352728 2013-05-06 03:24:16

2

您可以存储使用localStorage

+0

感谢您的快速回复。我会检查localStorage。 – user2352728 2013-05-05 21:28:38

1

的JavaScript您的购物车有没有国家的概念,所以它本身不能坚持跨页的信息。但是,我们可以通过几种不同的方式记住从一个页面到另一个页面的数据。

如果真的只有非常少量的数据要存储并希望支持旧浏览器,我们可以使用cookie

另一种方法是使用LocalStorage来存储信息。这提供了更大量的存储空间并且具有灵活且易于使用的格式来设置和检索数据。

+0

谢谢你的信息。 – user2352728 2013-05-05 21:29:06