```<!-- var colData=[{id:'高',projectName:'高','selected':'true'},{id:'中',projectName:'中'},{id:'低',projectName:'低'},{ id: "操作错误", projectName: "操作错误" }, { id: "滥用授权", projectName: "滥用授权" },{ id: "身份假冒", projectName: "身份假冒" },{ id: "安全漏洞", projectName: "安全漏洞" }, -->
///////上面注释掉的代码是我尝试静态加载的语句,////下面的代码是我ajax请求的代码
var colData=[];
console.log(typeof colData);
$.ajax({
type:"POST",
url:"./php/read_from_db2.php",
dataType:"json",
async:false,
data:{},
success:function(data){
console.log(data);
colData = [];
data.forEach(ele => {
var obj = {
id:ele,
projectName:ele,
selected:true
};
colData.push(obj);
});
console.log(colData);
},
async:true,
error:function(){
alert("请求失败");
},
});
//////下面的代码为我想要设置的列
{field:'关联威胁',title:"关联威胁", width:140,align:'center',editor: {
type:'combobox',
options: {
valueField:'id',
textField:'projectName',
panelHeight:'auto',
data:colData//这里是我定义的全局变量,将它传给options的data
}}},
你的问题是关于如何将生成的表格中的某一列的所有行都设置为下拉列表的形式,并且从后台数据库中读取数据。你尝试了静态加载数据的方法,但是动态加载数据时下拉列表出不来。你使用了ajax请求从后台数据库中获取数据,并将获取到的数据赋值给一个全局变量colData。你想要将这个colData传递给下拉列表的options中的data属性。我的建议是,你需要在ajax请求成功后再去设置下拉列表的options属性,因为ajax请求是异步的,需要等待数据返回后再去渲染下拉列表。
https://cool-js.com/