2

这是一个困难的问题,因为我不知道如何措辞。我正在使用 HTML5 和 JS 制作一个购物车网站,我已经完成了大部分工作,但在一个重要方面需要帮助。

目前,我的“立即购买”按钮位于链接到 1 个页面的标签中,用户可以在其中输入他的信息并进行购买,该页面称为“结帐”。我希望这个“结帐”页面显示他想要购买的商品的价格。

例如)用户点击价值 10.00 美元的书并点击立即购买按钮。此按钮会将他发送到确认页面,该页面将显示填写表格,但该页面不显示他正在购买的商品的价格。

这就是我的问题所在。除了为每个产品制作不同的页面(我只有 9 个产品)之外,我想不出任何解决方案。

另外,如果不是很明显,我仍然是 JS 的初学者。在帮助我弄清楚如何在每个特定项目的“结帐”页面上显示价格而不创建 9 个单独的页面时,任何帮助将不胜感激。谢谢你。

4

3 回答 3

3

如果我理解正确,您是在问如何在 Javascript 中存储一个可以被多个页面检索的变量。

执行此操作的规范方法是使用cookie。原生 cookie 库比较杂乱,所以我推荐使用 cookie 库,像这样

但是,由于您的问题已标记为html5,因此您可能愿意接受sessionStorageHTML5 解决方案,这比 cookie 简单得多。

sessionStorage.setItem("price", 100);
var price = sessionStorage.getItem("price");
于 2012-04-27T21:02:14.097 回答
3

最好的方法是使用一些服务器端解决方案。客户端将他的表单发送到您的服务器,在那里对表单进行评估并呈现相应的 html 页面。

唯一的另一种方法是使用 cookie 或本地存储 - 但这相当难看。

您绝对应该阅读一些关于 php 和 mysql 的教程,但我将简要介绍如何实现这一点。

您在页面上提供这样的表格:

<form method="post" action="your-serverside-phpscript-that-processes-your-form.php>
   How many Ipads you wanna buy:<input type="number" name="ipads">
   <button type="submit">
</form>

现在在服务器端,您的 php-script 可以评估表单。

所有表单域都存储在一个$_POST数组中。( $_POST["ipads"] ) 获取用户在表单中输入的值。您还不需要将这些值存储在数据库中。您评估表单值并使用相应的数据(总价)创建结帐页面。现在用户提交结帐表单,您再次处理并存储在数据库中。

我不会写下(对不起,太累了)这个服务器端部分是如何工作的,那里有很多 tuts,只需在 google 上搜索 php+mysql。

于 2012-04-27T21:00:04.687 回答
2

由于您希望将这些数据全部保存在客户端,因此我鼓励您查看Amplify.Store。完全披露,我目前受雇于它背后的公司——但它很棒,而且免费。

保存数据很容易:

amplify.store( 'cart', { name: 'Book Title', price: 10.99 } );

要稍后访问它,您可以简单地调用:

amplify.store( 'cart' );

这将返回您的对象,您可以从中获取当前加载的所有产品。Amplify 将评估您的系统并确定最佳存储方法并使用它。这消除了你盘子里的所有猜测,让你做你想做的事。

请理解,虽然在客户端持久化数据很方便,但它绝不是安全的。在处理财务性质的交易和问题时,您应该始终将数字置于消费者手中。

通常,此类数据存储在服务器端、会话、数据库或两者的组合中。但是,如果您了解风险,并且您的模型允许这种类型的持久性,那么无论如何都可以随意将其用作解决方案。

于 2012-04-27T21:02:22.437 回答