我有一个具有多选功能的Jquery DataTable。此外还有一个按钮和一个div元素:
<script>
$(document).ready(function() {
var tablemovChAf = $('#movChAf').DataTable({
//multiselect
$('#movChAf tbody').on('click', 'tr', function () {
$(this).toggleClass('selected');
} );
})
</script>
<button name="sbmsimulate" class="button-input btn btn-info" id="sbmsimulate" style="info" type="button" >
<div id="divAccMovement"></div>
我想要的是通过点击按钮将所有选定的行发送到“accMovement.jsp”。
$('#sbmsimulate').click( function () {
$('#divAccMovement').load('accMovement.jsp',{
mode:"2",
arrayData:tablemovChAf.rows('.selected').data()
});
} );
我的jsp accMovement.jsp看起来像这样;
<%
String str_mode=request.getParameter("mode").toString();
String[] arrayData=null;
if (str_mode.equals("2")) {
arrayData=request.getParameterValues("arrayData[]");
}
%>
我尝试了Passing javascript array to servlet的解决方案(事实上,这就是我所做的),但它对我没有用。单击按钮时没有任何反应。
我正在调试,似乎问题在于:
arrayData:tablemovChAf.rows('.selected').data()
因为,如果它被注释(并且jsp中的“if”语句也被注释)它正在工作。但是我需要的是将选定的行发送到jsp页面。
从客户端发送阵列并在服务器上接收阵列的正确方法是什么?
提前致谢。
答案 0 :(得分:0)
我找到了一个不太适合我的案例的解决方案(遵循此jQuery DataTables Getting selected row values),它并不完全符合我的要求,但我可以在以后添加一些语句以实现我的目标
$('#sbmsimulate').click( function () {
var ids = $.map(tablemovChAf.rows('.selected').data(), function (item) {
return item[11]
});
$('#divAccMovement').load('accMovement.jsp',{
mode:"2",
arrayData:ids
});
} );
索引11的列是我的dataTable的id,因此在服务器端我可以获得有关每一行的所有信息。
但是我想避免这一步:
var ids = $.map(tablemovChAf.rows('.selected').data(), function (item) {
return item[11]
});
并在参数中指定所有内容,如下所示:
arrayData:tablemovChAf.rows('.selected').data()