(编辑问题)
我想要实现的是: 我想要按钮,我可以将我的项目添加到购物车,例如AddToCart(),这样我就可以添加我的项目,其中包含该人想要的数量。要做到这一点,我需要像sum,quanitity和name这样的全局数组。除了我的方式,它没有这个,我不知道如何实现这一点。
给我的提示是:每个玩具的价格和名称应该使用DOM方法调用document.getElementByID(itemPriceID-or-itemNameID).innerHTML直接从网页读取,其中itempriceID和itemNameID是HTML元素的id,显示每个玩具的价格和名称。 (注意:价格(直接从页面读取)将是字符串类型,这需要转换为数字,因此为了执行类型,您将需要使用Javascript类型转换方法parseFloat(price)))。
然后我需要一个ViewShoppingCart(),它将循环遍历数组并将其显示在具有总和的表中。 我所做的有点相似,但我的知识和经验不足以完成上述问题。我希望这更有意义。
javascript代码
function round_total (c) {
var pennies = c * 100;
pennies = Math.round(pennies);
var strPennies = "" + pennies;
var len = strPennies.length;
return parseFloat(strPennies.substring(0, len - 2) + "." + strPennies.substring(len - 2, len));
}
// End of round_total function.
/* Start of generate_page function. */
function generate_page (form) {
tax = 0.08;
delivery_p = 2.99;
var odate = new Date();
var qty = form.quantity.value;
var product_v = new String(form.product.value);
var total_price = product_v.substr(product_v.indexOf("$") + 1, product_v.length - product_v.indexOf("$"));
var price_without_tax = round_total(qty * total_price);
var ttax = round_total(price_without_tax * tax);
var delivery = round_total(qty * delivery_p);
var total_p = round_total(price_without_tax + ttax + delivery);
document.writeln("Quantity: " + qty + "<br>");
document.writeln("Price: $" + total_price + "<br>");
document.writeln("Delivery: $" + delivery + "<br>");
document.writeln("Total: $" + total_p + "<br>");
document.writeln("Order placed on: " + odate.toGMTString());
}
function calculate() {
round_total (c)();
generate_page (form)();
}
HTML code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<script type="text/javascript" src="shopping_cart.js" />
</script>
<link rel="stylesheet" type="text/css" href="shopping_cart.css" />
<title> A title </title>
</head>
<body>
<form name="form1" method="post" action="data.php" >
<div id="product1">
<p id="title1"><b>Star Wars Tie Interceptor</b></p>
<img src="../Assingment Pics/Tie Interceptor.jpg" /> <p id="price1">Price £39.99</p> <p><b>Qty</b></p>
<select name="qty">
<option value="number">0</option>
<option value="number">1</option>
<option value="number">2</option>
<option value="number">3</option>
<option value="number">4</option>
<option value="number">5</option>
</select>
</div>
<div id="product2">
<p id="title2"><b>Star Wars Clone Wars Vehicles Corporate Allinace Tank</b></p>
<img src="../Assingment Pics/Corporate Tank.jpg" /><p id="price2">Price £29.99</p> <b> Qty</b>
<select name="qty2">
<option value="number">0</option>
<option value="number">1</option>
<option value="number">2</option>
<option value="number">3</option>
<option value="number">4</option>
<option value="number">5</option>
</select>
</div>
<div id="product3">
<p id="title3"><b>Star Wars Clone Wars AT-ST vehicle</b></p>
<img src="../Assingment Pics/At St.jpg" /><p id="price3">price £49.99</p> <b>Qty</b>
<select name="qty3">
<option value="number">0</option>
<option value="number">1</option>
<option value="number">2</option>
<option value="number">3</option>
<option value="number">4</option>
<option value="number">5</option>
</select>
</div>
<br />
<input type="submit" value="Add to cart" name="submit" onClick="cart()";/><input
, type="reset" value="Reset" name="reset">
</form>
</body>
</html>
我是否还需要显示我的CSS? (对不起编码它对我来说不能正常工作,它没有显示应该的方式)
答案 0 :(得分:2)
好的,现在你可以做类似
的事情了var productname = new array();
var productprice = new array();
var productquantity = new array();
function cart()
{
for (i=1;i<=3;i++)
{
var name = 'title'+i;
var price = 'price'+i;
var quantity = 'qty'+i;
productname[i] = document.getElementById(name).innerHTML;
productprice[i] = document.getElementById(price).innerHTML;
var selectfield = document.getElementById(quantity).
productquantity[i] = selectfield.options[selectfield.selectedIndex].text;
}
}
此代码中可能存在错误,我没有真正对其进行测试,但它应该使用您拥有的产品的值填充这些数组。 接下来你应该把数量变成整数,价格变成浮点数并进行你计划进行的计算。所以总价格是productprice [1] + productprice [2] + productprice [3]。 这段代码仍然需要编辑才能真正起作用,并且可能有一种更聪明的方法可以让你到达那里,但这应该是一个开始。
答案 1 :(得分:0)
你犯的一个明显的错误就是你把按钮放在了标签之外,这使得它们什么都不做。首先解决这个问题。
在javascript部分,我真的不明白你想要实现的目标。我在提交按钮中看到'onClick =“cart()”',但这个函数似乎不存在? 您应该将输入按钮放在表单字段中,然后它将加载data.php(正如我在frist段中所建议的那样),或者您可以使用cart()函数读取值并使用AJAX发送值而不使用加载一个新页面(如果我理解正确,你似乎想要这样)。
在能够正确回答之前,请更好地解释您的需求。