Ifall man skall ha en delete-funktion på sidan som anpassas efter hur många checkboxes som är ifyllt hur gör man då lättast?
Jag har tagit fram följande snutt, men jag misstänker att det finns bättre.
'form.jsp
<form method="post" action="result.jsp">
<input type="checkbox" name="checkbox" value="3"> Första boxen<br>
<input type="checkbox" name="checkbox" value="5"> Andrea boxen<br>
<input type="checkbox" name="checkbox" value="7"> Tredje boxen<br>
<p>
<input type="submit">
</form>
'result.jsp
String[] checkbox;
checkbox = request.getParameterValues("checkbox");
for(int counter = 0; counter < checkbox.length; counter++)
{
String posts = checkbox[counter]+",";
SQL = "delete from table where id = "+posts+" ";
}
Kom även på ett annat problem, varför fungerar inte följande kod:
Fråga 1
Jag skulle nog gjort så här (snålar på resurserna):
String[] checkboxes = request.getParameterValues("checkbox");
StringBuffer sqlBuf = new StringBuffer("delete from table where id in (");
for(int i = 0; i < checkboxes.length; i++){
sqlBuf.append(checkboxes[i]);
if (i > 0)
sqlBuf.append(',');
}
sqlBuf.append(')');
String sql = sqlBuf.toString();
Fråga 2
Det funkar inte därför att Math.round tar double eller float som argument. Math.round(56.70) ska det alltså vara. Vill du ha fram en double eller float ur en String kan du använda parseFloat eller parseDouble.
Tyvärr spango får jag inte din kod att fungera, får ett null värde vilket genererar fel. Dock ändrade jag om min kod något, men den vill ej heller fungera, måste bero på "," borde byta ut det mot "and" eller något sådant på ett smart sätt, nån som har något förslag?
Raderna genererar nu inget fel, dock tas inga poster bort, man vidarbefodras till sidan show.jsp
if (request.getParameter("action").equals("delete")){
Statement stmt = db.createStatement();
String[] checkboxes = request.getParameterValues("checkbox");
StringBuffer sqlBuf = new StringBuffer("DELETE FROM [URLS] WHERE [Id] IN (");
for(int i = 0; i < checkboxes.length; i++){
sqlBuf.append(checkboxes[i]);
if (i > 0)
sqlBuf.append(',');
sqlBuf.append(checkboxes[i]);
}
sqlBuf.append(')');
String sql = sqlBuf.toString();
stmt.close();
response.sendRedirect("show.jsp");
}