По сути, решение сводится к следующему:
//These are your target elements
const client = document.querySelector('#client');
const region = document.querySelector('#region');
const table = document.querySelector('#table');
//POST username upon change event and modify table 'div' and region'select' innerHTML's accordingly
client.addEventListener('change', function () {
let xhr = new XMLHttpRequest();
let user = this.value;
xhr.open('POST', '/getRegionsByUser', true);
xhr.send(user);
xhr.onload = function(){
if (xhr.readyState == 4 && xhr.status == 200) {
let regions = JSON.parse(this.responseText);
/* expected JSON-formatted string {list:[region1, region2, ...] */
regions.list.forEach(region => {
region.innerHTML += '<option value="'+region+'">'+region+'</option>';
table.innerHTML += '...';
});
}
};
});
Сценарии на стороне сервера сильно зависят от вашей среды, концептуально предполагается, что регионы SQL-выбора выбираются по имени пользователя и отвечают в формате JSONсписок