Существует способ получить массив JSON для заполнения раскрывающегося списка в тот момент, когда вы нажимаете ссылку «изменить», таким образом вы получаете свой JSON с помощью атрибута «завершить», а не «успешно» вашего вызова AJAX.внутри "fnServerData" вот так:
"fnServerData": function(sSource, aoData, fnCallback, oSettings) {
oSettings.jqXHR = $.ajax({
"dataType": 'json',
"type": "POST",
"url": sSource,
"data": "opcionesMenu=ini",
"success": fnCallback,
"complete": function(resp) {
jsonSelects = JSON.parse(resp.responseText);
}
});
}
В моем примере "jsonSelects" - это глобальная переменная, где я могу получить свой JSON везде внутри моего кода, затем я буду использовать мой JSON для заполнения раскрывающегося списка при редактировании.например:
function editRow(oTable, nRow)
{
var aData = oTable.fnGetData(nRow);
var jqTds = $('>td', nRow);
//Dropdown list
jqTds[2].innerHTML = '<select id="selMenu"></select>';
for(i = 0; i < jsonSelects.menu.length; i++) {
$('#selMenu').append('<option value=' + jsonSelects.menu[i].cod_elemento + '>' + jsonSelects.menu[i].nombre_elemento + '</option>');
}
//Dropdown list
jqTds[3].innerHTML = '<select id="selIdioma"></select>';
for(i = 0; i < jsonSelects.idioma.length; i++) {
$('#selIdioma').append('<option value=' + jsonSelects.idioma[i].codigo_idioma + '>' + jsonSelects.idioma[i].nombre_idioma + '</option>');
}
// Input text
jqTds[4].innerHTML = '<input value="' + aData["opcion"] + '" type="text">';
Когда вы нажмете на ссылку «изменить», вы получите выпадающий список в нужных полях.