问题描述: 使用columnDefs的dataTable不起作用如果使用它隐藏特定的列和数据,然后将隐藏的数据传递给数据库。
回答: 在使用columnDefs属性来隐藏特定的列和数据时,需要确保以下几点:
下面是一个示例代码,演示如何使用columnDefs隐藏特定的列和数据:
HTML代码:
<table id="myTable">
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th>Country</th>
</tr>
</thead>
<tbody>
<tr>
<td>John</td>
<td>25</td>
<td>USA</td>
</tr>
<tr>
<td>Jane</td>
<td>30</td>
<td>Canada</td>
</tr>
</tbody>
</table>
JavaScript代码:
$(document).ready(function() {
$('#myTable').DataTable({
columnDefs: [
{ targets: [1], visible: false } // 隐藏第2列(索引为1)
]
});
});
在上述示例中,第2列(索引为1)将被隐藏,即"Age"列。隐藏的列数据仍然存在于HTML表格中,但在渲染时不可见。
如果需要将隐藏的数据传递给数据库,可以通过以下步骤实现:
以下是一个示例代码,演示如何获取隐藏的数据并使用Ajax发送到后端服务器:
JavaScript代码:
$(document).ready(function() {
var table = $('#myTable').DataTable({
columnDefs: [
{ targets: [1], visible: false } // 隐藏第2列(索引为1)
]
});
$('#submitBtn').click(function() {
var hiddenData = table.rows({ search: 'applied', page: 'all' }).data().toArray();
// 使用Ajax发送隐藏的数据到后端服务器
$.ajax({
url: 'save_data.php',
method: 'POST',
data: { hiddenData: hiddenData },
success: function(response) {
// 处理服务器返回的响应
},
error: function(xhr, status, error) {
// 处理错误
}
});
});
});
在上述示例中,通过调用table.rows().data().toArray()方法获取隐藏的数据,并将其存储在hiddenData变量中。然后,使用Ajax将hiddenData发送到后端服务器的save_data.php文件。
在后端服务器的save_data.php文件中,可以接收隐藏的数据,并进行进一步的处理和存储到数据库中。
需要注意的是,上述示例中的代码仅供参考,具体实现方式可能因应用场景和需求而有所不同。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云