我想知道是否可以从 HTML 形式的复选框中获取两个值。
我的 HTML 代码是这样的:
<input type="checkbox" name="order" value="20" > Sundae $20
<input type="checkbox" name="order" value="15" > Sandwich $10
<input type="checkbox" name="order" value="25" > Reg. Burger $30
设置的值是订单的价格。这样,当我在 Java servlet 中对其进行编码时,我就可以计算订购的总金额。 (我的代码是这样的)
String [] price = request.getParameterValues("order");
int sumTotal = 0;
for (String sum : price){
sumTotal=sumTotal+Integer.parseInt(sum);
}
out.println("<h1>Total Amount Purchased: $" + sumTotal + "</h1>");
我的问题如下:
我想在合计之前显示订单名称和价格,但我不能,因为我只能使用以下代码获取价格值:
String [] price = request.getParameterValues("order");`
除了价格之外,我怎样才能获得商品的名称? 我想在 HTML 中调用两个值,如下所示:
<input type="checkbox" name="order" value="20" value="Sundae $20") Sundae $20
这样在我的 Servlet 中结果将是这样的:
Ordered by Customer 1:
Sundae $20
Sandwich $10
Total: $30 <------//I could only do this
但我认为这是不可能的,我不知道如何在java中调用它。
另外,我如何改进我的代码以获得总金额?
最佳答案
“值”应该是选项的名称:
<input type="checkbox" name="order" value="sundae" > Sundae $20
<input type="checkbox" name="order" value="sandwich" > Sandwich $10
<input type="checkbox" name="order" value="burger" > Reg. Burger $30
现在您知道选择了哪些商品(而不仅仅是它们的价格)。
它破坏了计算总价的代码。然而它已经很破了。您不能依赖客户提供的自豪感来决定服务器上的总价格。用户可以很容易地向您发送值为“1”的表单回复并破坏所有内容。
服务器需要知道每个商品的价格并使用它。
String [] items = request.getParameterValues("order");
int sumTotal = 0;
for (String item : items) {
sumTotal=sumTotal+prices.getPriceOf(item);
}
哪里
prices.getPriceOf(item)
提供订购商品的价格(实际上代码应该比这更复杂:它应该检查商品是否存在等等)。
您可能需要使用文本框而不是复选框,以便能够订购多个商品。
关于java - 如何使用 HTML 中的复选框获取两个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5145305/