当用户单击并选择一个客户端时,我想根据客户端更改区域,然后根据与数据库Timer
上与该客户端相关的区域更改区域下拉列表
这是我的客户表格:
这是我的Region表,其中client_id是外键:
这是我的代码
enter code here
这是要添加区域的页面: Here is the page to add area
答案 0 :(得分:1)
您需要在onChange事件上为field_id = client_id 添加ajax请求,以根据选定的 client_id 获取区域。为了响应,您可以根据需要设计服务器,可以在服务器端生成HTML,也可以从数据库中获取原始结果作为响应,然后在客户端从中生成HTML。当您获得适合选择选项的HTML格式后,将该HTML附加到 region_id 选择。
答案 1 :(得分:0)
基本上,解决方案归结为以下内容:
//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格式的列表进行响应