0

我之前问了一个类似的问题,但后来意识到我需要为此使用 javascript。这是我的情况:

我有一个购物网站,带有产品 x 和“购买”按钮。“购买”按钮链接到结帐页面,以及一个 javascript 函数,该函数具有 2 个名为“产品”和“价格”的全局变量。我想在结帐页面上显示这两个变量,这将根据用户按下的产品“购买”按钮自动更新。

var x = "iPhone";
var xprice = 199.99;
var product;
var price;

function productX(){
    product = x;
    price = xprice;
}

^^^^ 不起作用。它只会在写入变量的区域中中继“未定义”。有人可以帮助我吗,如果他们能理解我想要做什么?

我只是希望确认页面显示该人将要购买的产品,以及价格取决于用户按下的购买按钮。我似乎无法使用 JavaScript 让它工作。我不想使用 PHP、数据库或 cookie。

谢谢你

4

2 回答 2

1

如果要将值传递到第二页,则需要将它们附加到第二页链接的 URL。

假设您的第二页称为结帐。您可能会链接到结帐页面,如下所示:

<a href="checkout">Checkout</a>

现在您不能使用表单提交来执行此操作...阅读此处了解更多信息: 提交带有查询字符串参数和隐藏参数的 GET 表单消失

您需要自己构建查询字符串。(这是?something=10&somethingelse=20)URL 的一部分。

您需要做的是通过事件侦听器将 JavaScript 函数附加到单击按钮。您还需要为您的链接提供一个 ID。该函数有两个参数,即商品的价格和名称。

<a id="checkout" href="checkout">Checkout</a>

function checkout(price, name)
{
  document.getElementById('checkout').href += "?price="+price+"&name="+name;
}

第二个页面已加载,您需要通过将字符串值拆分为数组来从 URL 中检索这些值。

请参见此处: 如何从 GET 参数中获取值?

于 2012-04-28T02:43:22.817 回答
1

好吧,假设您试图将数据从一个页面传递到另一个页面,而不使用 PHP 或 cookie,这将是困难的。

假设您有一个带有“购买按钮”的表单可以转到下一页,您可以设置表单的 action="GET",并在表单中有 2 个隐藏字段:

<input id="productInput" type="hidden" name="prpduct" value="" \>
<input id="priceInput" type="hidden" name="price" value="" \>

然后,我们需要将您的功能更改为:

function productX(){
document.getElementById("productInput").value = x;
document.getElementById("priceInput").value = xprice;
}

然后,这将让 javascript 通过 GET 将值传递到下一页。

诚然,javascript 不是为此而设计的。因此,要在下一页上显示这些值,您必须使用如下函数:

function GetFromUrl(url, key) {
var pairs = url.substring(url.indexOf('?') + 1).split('&');
for (var i = 0; i < pairs.length; i++) {
  var pair = pairs[i].split('=');
  if(key == pair[0])
     return pair[1];
}
return null;
}

(感谢卡萨布兰卡在这里从 URL 中创建一个 JavaScript 数组 我修改了他的函数)

然后,在 body 的 onload 中,调用这个函数:

product = GetFromUrl(window.location, "productInput");
price = GetFromUrl(window.location, "priceInput");

从这里开始,您必须执行一些 document.getElementById() 操作来修改实际页面。

对不起,如果我不是很描述...

于 2012-04-28T02:52:46.173 回答