[英]Delete multiple rows of data in JSP based on check box selection(AJAX)
我正在满足以下要求。
我将对象列表(每个对象都有唯一的ID)作为会话参数存储,并使用JSTL在jsp的表中显示每个对象数据,如下所示
<c:forEach var="list" items="${PlayerList}">
<tr>
<td>
<img style="cursor:pointer" src="./images/delete.jpg" title="Force Delete"
onClick="forceDelete(${list.playerId})">
<td>${list.playerName}</td>
<td>${list.runsScored}</td>
</tr>
</c:forEach>
而AJAX功能是
<script>
function forceDelete(playerIdValue)
{
var xmlhttp;
var toDelete= confirm("Do you want to Remove?")
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById('display_div').innerHTML=xmlhttp.responseText;
}
}
if (toDelete== true)
{
xmlhttp.open("POST","PlayerController?
value="+playerIdValue,true);
xmlhttp.send();
}
}
</script>
我正在处理PlayerController Servlet的POST方法中的删除行
现在我想实现如下
<c:forEach var="list" items="${PlayerList}">
<tr>
<td><input type="checkbox">
<td>${list.playerName}</td>
<td>${list.runsScored}</td>
</tr>
</c:forEach>
<input type="button" value="delete">
用户可以选择多个复选框并单击删除按钮,然后应使用AJAX从JSP中删除相应的行
我该如何进行,任何帮助将不胜感激。
如果需要任何其他数据,我准备提供。
提前致谢。
我尝试了这个,但似乎没有用,告诉我我做错了什么。
复选框代码`
<input type="checkbox" name="toBeDeleted[]" value="${list.playerId}">
<div align="center"><button onclick="forceStop()">Delete</button></div>
JS代码
function forceStop()
{
var toBeDeleted = new Array();
$("input:checked").each(function() {
data['toBeDeleted[]'].push($(this).val());
});
$.ajax({
url:"PlayerController",
type:"POST",
dataType:'json',
data: {toBeDeleted:toBeDeleted},
success:function(data){
},
});
`
在没有确切代码详细信息的情况下需要遵循的方法:
如有任何疑问,还将张贴伪代码。
这就是我所做的,并且工作正常
在JSP中,JS函数内部
function forceStop()
{
var checkboxes = document.getElementsByName('toBeDeleted');
var selected = new Array();
for (var i=0; i<checkboxes.length; i++) {
if (checkboxes[i].checked) {
selected.push(checkboxes[i].value);
}
}
$.ajax({
url:"PlayerController",
type:"POST",
dataType:'json',
data: {toDelete:selected},
success:function(data){
alert("SUCCESS");
},
});
}
在servlet内部,我检索了如下数组。
String[] toDelete = request.getParameterValues("toDelete[]");
int[] toBeDeleted=new int[toDelete.length];
for(int i=0;i<toDelete.length;i++)
{
toBeDeleted[i]=Integer.parseInt(toDelete[i]);
}
我们需要将每个元素解析为整数,因为它们将被AJAX解析为字符串。
从控制器我做了批量删除使用DAO。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.