Подтвердить что ты не робот

Изменить значение параметра на лету?

Можно ли изменить значение параметра 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] изменяется при нажатии.

4b9b3361

Ответ 1

Вы пробовали

 oTable = $("#my-table").dataTable(oST);
 var oSettings = oTable.fnSettings();
 oSettings.sAjaxSource  = "new value";

Ответ 2

Вы можете использовать функцию fnReloadAjax(), см. плагины на официальном сайте данных.

Ответ 3

Для 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. Обратите внимание, что этот плагин устарел.