Java 试图根据选中的窗体复选框影响数据库列
我有一个HTML表单的小调查,它使用AJAX提交给Javaservlet。 用户提交有关其性别、年龄、喜欢8种类型的电脑游戏中的哪一种(至少一种)以及表单提交日期和时间的信息 以下是MySql表: 这是MySQL查询:Java 试图根据选中的窗体复选框影响数据库列,java,mysql,jsp,servlets,checkbox,Java,Mysql,Jsp,Servlets,Checkbox,我有一个HTML表单的小调查,它使用AJAX提交给Javaservlet。 用户提交有关其性别、年龄、喜欢8种类型的电脑游戏中的哪一种(至少一种)以及表单提交日期和时间的信息 以下是MySql表: 这是MySQL查询: String query = "INSERT INTO vote (sex, age, genre1, genre2, genre3, genre4, genre5, genre6, genre7, genre8, date) VALUES (?,?,?,?,?,?,?,?,?
String query = "INSERT INTO vote (sex, age, genre1, genre2, genre3, genre4, genre5, genre6, genre7, genre8, date) VALUES (?,?,?,?,?,?,?,?,?,?,NOW())";
以下是类型HTML输入字段:
<input type="checkbox" class="genre" name="genre" value="1"><label for="1">First Person Shooter</label><br>
<input type="checkbox" class="genre" name="genre" value="2"><label for="2">Sports</label><br>
<input type="checkbox" class="genre" name="genre" value="3"><label for="3">Action/Adventure</label><br>
<input type="checkbox" class="genre" name="genre" value="4"><label for="4">Educational</label><br>
<input type="checkbox" class="genre" name="genre" value="5"><label for="5">Puzzle</label><br>
<input type="checkbox" class="genre" name="genre" value="6"><label for="6">Real Time Strategy</label><br>
<input type="checkbox" class="genre" name="genre" value="7"><label for="7">Beat em up</label><br>
<input type="checkbox" class="genre" name="genre" value="8"><label for="8">Survival Horror</label><br>
因此,在我的查询“如果选中了复选框1,则将第3列设置为1;如果选中了复选框2,则将第4列设置为1”。等等。
获取参数值
将仅返回选中的复选框值:
String[] checkboxes = request.getParameterValues("genre");
因此,for循环条件复选框。length
将失败。因为您的查询中有10个参数,如果用户只选择了3个复选框,那么您的复选框。长度将为3。因此,代码不会为其余参数设置值
更好的解决方案是创建genre
表和名为voteGenre
的关联表。然后使用组合键voteId
和genreId
。每次有人投票时,您都会将其插入voteGenre表
String[] checkboxes = request.getParameterValues("genre");