_result.forEach(function(elem) {
let _searchLink = '<a href="'+elem.href+'" class="btn btn-success btn-sm rounded-5 opacity-75 city m-1">'+elem.innerHTML+'</a>';
_city_search_result.insertAdjacentHTML('beforeend', _searchLink);
});
// При перезагрузке или закрытии окна
QDB.edit(manager.id, { online: 0, logout_date: D_TimeNow(), navigator: navigator.userAgent }, 'users');
...
// При авторизации
const loginDate = sessionStorage.getItem('crm_session_login_date') || D_TimeNow();
const logoutDate = sessionStorage.getItem('crm_session_logout_date') || manager.logout_date; // Предыдущее значение из данных после авторизации
sessionStorage.setItem('crm_session_login_date', loginDate);
sessionStorage.setItem('crm_session_logout_date', logoutDate);
QDB.edit(manager.id,{online:1, login_date: loginDate, logout_date: logoutDate, navigator: navigator.userAgent},'users')
var formData = new FormData();
formData.append('photos[]', photos);
formData.append('text', text); // добавляем новую строку. Если нужно массив строк - то по аналогии с photos, переменная 'texts[]'
...
$photos = $_FILES['photos'];
$text = $_POST['text'];
clients:[
// первый клиент
{
calls: [...] ,
mails: [...],
...
},
// и тд, другие клиенты
...
]