簡體   English   中英

從Servlet獲取復選框值

[英]Getting checkbox value(s) from a Servlet

我有一個帶有MySQL數據庫的servlet。 它看起來像這樣: 在此輸入圖像描述

這是它的代碼片段:

out.println("<table id = \"main_section\" cellspacing=\"1\" bgcolor=\"red\" > ");
out.println ("<tr> ");
out.println("<td >NUMBER</td>");
out.println("<td >PAYMENT</td>");
out.println("<td >RECEIVER</td>");
out.println("<td >VALUE </td>");
out.println("<td >CHECKBOX</td>");
out.println("</tr>");
out.println("<tr>");
for (int i = 0; i < ex.getExpenses().size(); i++) {
    out.println("<td > " + ex.getExpenses().get(i) + "</td>");

    if (i>0 && (i+1)%4==0) {
        out.println("<td><input type=\"checkbox\" name=\"checkbox\"></td>");
        out.println("</tr><tr>");

    }     
}
out.println("</tr>");

我需要做的是創建一個提交按鈕,用於計算復選框的VALUE總和。 例如,如果選中了NUMBER 1和2,則提交按鈕的結果應為5577.0(VALUE 22.0 + 5555.0)。 任何人都可以幫助我嗎?

首先,您應該了解JSP並從JSP而不是從servlet生成HTML標記。

現在為你的問題。 這些行中的每一行都來自數據庫表。 所以這些行中的每一行都應該有一個ID(主鍵)。 將行的ID分配給復選框的值。 提交表單時,servlet將收到已選中復選框的所有ID。 從數據庫中獲取這些ID對應的值,並將它們相加(或執行直接計算總和的查詢):

<input type="checkbox" name="checkedRows" value="${idOfCurrentRow}">

在處理表單提交的servlet中:

String[] checkedIds = request.getParameterValues("checkedRows");

你可以得到它

String[] values = req.getParameterValues("checkbox");

改變這一行:

 out.println("<td><input type=\\"checkbox\\" name=\\"checkbox\\"></td>"); 

讀書:

out.println("<td><input type=\"checkbox\" name=\"selected\" value=\""+ex.getExpenses().get(i-1)+"\"></td>");

這將創建復選框,您可以通過value-tag識別自己。 我希望“數字”字段是主鍵等。

然后在下一次運行。 您可以按以下方式獲取所有選中的值

String[] selected = request.getParameters("selected");

現在,你可以加上數字。 我不太明白你的費用如何從代碼中看起來像。 這里只是一個圖示不起作用,但可以給你如何做的想法:

int sum = 0;
for (int i = 0; i < ex.getExpenses().size(); i++)
  for(int selectedIndex = 0; selectedIndex < selected.length; ++selectedIndex)
    if (ex.getExpenses().get(i) == Integer.parseInt(selected[selectedIndex]))
      sum += ex.getExpenses().get(i-1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM