Ответ 1
Вы пробовали
oTable = $("#my-table").dataTable(oST);
var oSettings = oTable.fnSettings();
oSettings.sAjaxSource = "new value";
Можно ли изменить значение параметра jQuery DataTables на лету. Моя проблема следующая, мне нужно изменить sAjaxSource
на лету. Уже пробовал что-то вроде этого:
var oDefault = {
"bServerSide": true,
"bProcessing": true,
"bJQueryUI": true,
"bLengthChange": false,
"bFilter": true,
"iDisplayLength": 8,
"sAjaxSource": "my.php?" + "idKat="+aData[3],
"aaSorting": [[ 0, "asc" ],[ 3, "asc" ]],
"sDom": '<"top"ir>t<"bottom"pf<"clear">',
"sPaginationType": "full_numbers",
"oLanguage": {
"sUrl": "<?php echo $full_path_jezik_2;?>"
},
"aoColumns": [
{ "sName": "rb","sWidth": "15%", "sClass": "center","sType": "numeric" },
{ "sName": "chkZaBrisanje","sWidth": "20%", "sClass": "center", "bSortable":false },
{ "sName": "rbPrvaSlika","sWidth": "15%", "sClass": "center","bSortable":false },
{ "sName": "nazivSlike","sWidth": "50%", "sClass": "center", "sSortDataType": "dom-text" }
]
};
var oST = $.extend( true, {}, oDefault );
oST.sAjaxSource = "my.php?" + "idKat="+aData[3];
alert(oST.sAjaxSource);
if (typeof oTable == 'undefined') {
oTable = $("#my-table").dataTable(oST);
}
else
{
oTable.fnDraw();
}
Мой aData[3]
изменяется при нажатии.
Вы пробовали
oTable = $("#my-table").dataTable(oST);
var oSettings = oTable.fnSettings();
oSettings.sAjaxSource = "new value";
Вы можете использовать функцию fnReloadAjax(), см. плагины на официальном сайте данных.
Для DataTables 1.10 +:
Используйте ajax.url()
API-метод, как показано ниже, чтобы установить URL-адрес Ajax и немедленно загрузить данные из нового источника:
var table = $('#example').DataTable({
ajax: 'data.json'
});
table.ajax.url('newData.json').load();
Для DataTables 1.9:
Используйте fnReloadAjax()
, чтобы перезагрузить данные таблицы из источника Ajax. Обратите внимание, что этот плагин устарел.