问题描述
$(function() { $('input[type=checkbox]').change( function() { if ($(this).is(':checked')) { document.getElementById("chk_option").value += this.value + ","; alert($("#chk_option").val()); } else { document.getElementById("chk_option_remove").value += this.value + ","; } } ); });
<div> <center> <form id="form_tarif" class="form-horizontal" style="padding-top:57px;" action="pricesinput" method="POST"> <input type="hidden" id="chk_option" name="chk_option"> <input type="hidden" id="chk_option_remove" name="chk_option_remove"> <c:forEach items="${option_tarif_list}" var="option_tarif" varStatus="loop"> <div class="checkbox1"> <label> <input type="checkbox" name="tarif_inclue[]" value="${option_tarif.id}" class="checkboxchk" id="option_tarif_chk_${option_tarif.id}">${option_tarif.libelle} </label> </div> </c:forEach </form> </center> </div>
你好
您能否通过以下JS帮助我。 我只需要获取选中复选框的值,并在ID #chk_option中使用它。 然后,我将在Java代码中使用此ID插入数据库。
这是下面我的Java代码的一部分:
String currentTypeTarifIdStr = request.getParameter("current_typetarif_id");
Integer currentTypeTarifId = Integer.valueOf(currentTypeTarifIdStr);
String TypeTarifIdToRemoveStr = request.getParameter("typetarif_id_to_remove");
Integer TypeTarifIdToRemove = Integer.valueOf(TypeTarifIdToRemoveStr);
Integer trimmedOptionSplit = 0;
String optionChkStr = request.getParameter("chk_option");
String[] optionSplitStrs = optionChkStr.split(",");
String TypeTarifOptionToRemoveStr = request.getParameter("typetarif_option_to_remove");
Integer TypeTarifOptionToRemove = Integer.valueOf(TypeTarifOptionToRemoveStr);
query = mEntityManager.createQuery("DELETE FROM TarifTypeOptionEntity WHERE typeTarifId=:pId");
int deletedCount = query.setParameter("pId", currentTypeTarifId).executeUpdate();
mUserTransaction.commit();
for (String optionSplitStr : optionSplitStrs) {
String trimmedOptionSplitStr = optionSplitStr.trim();
// do something with trimmedOptionSplitStr
if (!trimmedOptionSplitStr.equals("")) {
trimmedOptionSplit = Integer.valueOf(trimmedOptionSplitStr);
}
mUserTransaction.begin();
TarifTypeOptionEntity typeTarifTypeOption = new TarifTypeOptionEntity();
typeTarifTypeOption.setTypeTarifId(currentTypeTarifId);
typeTarifTypeOption.setTarifOptionId(trimmedOptionSplit);
mEntityManager.persist(typeTarifTypeOption);
mUserTransaction.commit();
}
mUserTransaction.begin();
}
我将首先删除数据库中的所有内容,然后仅在数据库中插入选中的复选框。 为此,我应该用逗号将所有检查的值连接起来。 然后在我的Java代码中,我将其拆分并删除逗号。
但这没有发生。 有人可以帮我编码,找出我在做什么错。
编辑:
控制台中没有错误,并且警报确实起作用。 实际上,此代码可以完美地工作。 在单击复选框时,将执行if子句,每次我选中另一个复选框时,该值都会在逗号后面添加。 这是我在Java中需要的那些值。 但这并不是我从这段代码中所需要的。
现在,它只将我未选中的值添加到数据库中。
但是当然不可能发生,因为该值已经存在。
所以我得到的错误造成的: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (
locforall_booking .
t_be_tarif_type_option , CONSTRAINT
fk_t_be_type_tarif_option_t_be_tarif_option1 FOREIGN KEY (
be_tarif_option_id ) REFERENCES
t_be_tarif_option (
ID ) ON DELETE CASCA)
我的问题的场景:如果当我检查了2个值并且我没有取消选中它而是检查了第三个值时,它将删除数据库中的所有内容并仅保留该第三个值。 但是我真正需要的是删除数据库中的所有内容并保留所有值,包括第三个值。
有谁可以帮助您的Java语言专家?
1楼
Dewang Tripathi
1
已采纳
2015-08-11 05:30:50
您可以使用2D数组执行以下操作:
<html>
var items = [["abc.jpg", "xyz.jpg"],["123.jpg","345.jpg"]];
alert(items[1][1]); // 345.jpg
</script>
</html>