java - 如何使用 HTML 中的复选框获取两个值?

标签 java html servlets

我想知道是否可以从 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/

相关文章:

java - 如何仅在运行时从类路径嵌入 keystore 证书?

css - Firefox 中的 Div 位置问题

java - 没有 web.xml 的 JNDI 引用和查找资源

java - 过滤代码使用实时java应用程序进行测试

java - 是否可以将变量分配给两种类型?

java - Java中 "field"和 "this.field"的区别

java - 为用户创建的类和 Java 中已存在的类创建对象数组之间的区别

javascript - 在 PHP 中检测移动设备

html - 具有重复数字的有序列表

URL 中显示的 Tomcat 端口号和项目名称