Эта проблема напоминает вопрос, который я задал несколько лет назад:
Параметр раскрывающегося списка jQuery: сначала выбран
Вот функция jQuery, которая успешно заполняетидентификатор раскрывающегося списка #namelist:
$('#edituserModal').on('show.bs.modal', function (e) {
initializeSelect($('#namelist'), 'assets/process/getNames.php', function (item) {
return {
value: item.name,
text: item.name
}
});
});
Код, указанный выше, успешно заполняет раскрывающийся список HTML, выберите здесь:
<select id="namelist">
</select>
Вот код, который создает таблицу данных:
$('#datatable').DataTable({
"searching": true,
"paging": true,
"serverSide": false,
"type": "POST",
"ajax": {
"url": "assets/process/getusers.php",
"dataSrc": ""
},
"columns":
[
{ "data": "null",
"render": function ( data, type, row, meta )
{
return "<i class='far fa-edit editUser'
title='Edit User' data-editdeptrepname='"+row.name+"'></i>";
}
},
{"data": "username"},
// few more columns
]
});
Пользователь нажимает на иконку с классом .editUser
.Это событие onClick находится здесь:
$('#datatable').on('click', 'tr > td > .editUser', function(e){
e.preventDefault();
var $dataTable = $('#datatable').DataTable();
var tr = $(this).closest('tr');
var rowData = $dataTable.row(tr).data();
var name = $(this).attr('data-name');
$('#namelist').val(name);
// $('#namelist').val(rowData.name); // <-- I tried this
// $('#namelist').val(rowData.name).text(rowData.name); // <-- also tried this
// $('#namelist option:first').val(rowData.name).text(rowData.name); // <-- this too
// $('#namelist option:first').val(name); // <-- this as well
$('#edituserModal').modal('show');
});
Как указано выше, раскрывающийся список заполняется списком имен.Когда пользователь открывает модальное имя, первое имя, которое должно появиться в раскрывающемся списке, должно быть таким, какое имя сохранено в БД.
Проблема в том, что в модальном выпадающем списке изначально не отображается имя, сохраненное в базе данных.Раскрывающийся список по-прежнему отображает все выбираемые параметры имени, но это имя, сохраненное в базе данных, которое должно отображаться изначально.
Как вы увидите в последнем фрагменте кода, я пробовал несколько способовзаставить его работать, но все безрезультатно.
Вот изображение выпадающего меню после открытия модального окна.Сначала следует прочитать имя, сохраненное в базе данных.Я могу нажать на выпадающий список, и он показывает целый список имен.Но мне нужно, чтобы изначально отображалось сохраненное имя:
Что на Земле мне не хватает?Я делал это сто раз, и это никогда не подводило меня до сих пор.