嗨其他程序员,
目前我正在尝试使用输入字段和选择列表来创建用户可以填写的动态tablerow(因此用户只能选择这些选项来填充该td-cell)。输入字段的工作方式应该如此,但不知何故,我在td中的选择列表根本没有显示。我检查了控制台,没有错误..这是我的代码:
//2 lists to loop through and get the right classname for the inputfields (for later use)
var camera_idcolumns = ['idkolom','merkkolom','typekolom','modelkolom','ipkolom','mackolom','usernamekolom','passwordkolom','bijzonderhedenkolom'];
var camera_idvelden = ['idveld','merkveld','typeveld','modelveld','ipveld','macveld','usernameveld','passwordveld','bijzonderhedenveld'];
rijToevoegen(camera_idcolumns, camera_idvelden, "camera");
//the function that adds the dynamic row to be filled in by the user.
function rijToevoegen(columnarray, fieldarray, tabelnaam){
var columns = columnarray;
var fields = fieldarray;
var row = '<tr>';
for(i=0;i<columns.length;i++){
if(i==0){
continue;
} else if (i == 1) {
var lijstnaam = "testlijst";
$.ajax({
type: "POST",
url: "../logic/getlijst.php",
data: {lijstnaam: lijstnaam},
success: function(data) {
var response = JSON.parse(data);
row += "<td class="+columns[i]+"><select id='selectlijst'>";
for(i=0;i<response.length;i++){
row += "<option value="+response[i]['itemnaam']+">"+response[i]['itemnaam']+"</option>";
}
row += "</select></td>";
}
});
continue;
} else{
row += "<td class="+columns[i]+"><input type='text' id="+fields[i]+"></td>";
}
}
row += '</tr>';
$(tabelnaam).append(row);
}
来自AJAX调用的响应是一个arraylist,其中包含selectlist应包含的项目。感觉就像我做的一切正确,但它仍然不会在浏览器中显示(也不是在浏览器的元素中检查它)。
提前感谢您的建议!
答案 0 :(得分:1)
此片段:
row += '</tr>';
$(tabelnaam).append(row);
在ajax调用完成之前运行,并实际运行填充该变量的代码。如果该代码依赖于(异步,不要忘记)ajax调用的结果,则将其移动到“success”函数中。