我想将搜索关键字添加到自定义按钮操作元素的URL中,以便将该关键字作为GET参数传递。
我正在像这样初始化数据表:
var table = $('#list').DataTable( {
dom: 'lBfrtip',
buttons: [
{
text: 'Export to PDF',
className: 'export-to-pdf',
action: function ( e, dt, button, config ) {
window.open('generate_pdf.php?case_id=<?= $case_id? ?>','_blank');
}
并尝试使用以下方法将关键字附加到URL:
// append keyword search values to pdf url
$('#list').on('search.dt', function() {
var keyword = $('.dataTables_filter input').val();
//FAILS HERE
var export_pdf_url = $(".export-to-pdf").attr("href");
// remove keywords if they already exist
removeURLParameter(export_pdf_url, 'keyword');
// append filter value to filtered pdf href
$(".export-to-pdf").attr("href", export_pdf_url + '&keyword='+keyword);
});
这似乎失败了,因为操作功能实际上并未为按钮分配href属性。
任何有关如何动态修改动作功能或其他方法的建议将不胜感激。
答案 0 :(得分:1)
使用search()
API方法,当不带参数调用时,该方法将返回当前应用的全局搜索。
然后直接在回调函数中为action
选项生成URL。
例如:
buttons: [
{
text: 'Export to PDF',
className: 'export-to-pdf',
action: function ( e, dt, button, config ) {
var query = dt.search();
window.open('generate_pdf.php?case_id=<?= $case_id? ?>&keyword=' + encodeURIComponent(query), '_blank');
}
}
],