我正在创建一个从mysql数据库表中获取值的组合框。 这是我实现的示例代码,但它不会填充选择框值。
mydata +='<div class="content nodisplay"><div class="row"><div class="label" style="font-size:22px;">Subject</div><div class="data">
<select id="fillsubject" name="fillsubject">';
$.post(document.URL,qstring,function(data){
var subjects = $(data).filter('.subjects');
$.each(subjects,function(index,value){
var subid = $(this).attr('id');
var subname = $(this).text();
mydata += "<option value='"+subid+"'>"+subname+"</option>";
//mydata += "<option value='english'>english</option>";
});
});
mydata +='</select></div></div></div>';
答案 0 :(得分:1)
var mydata +='<div class="content nodisplay"><div class="row"><div class="label" style="font-size:22px;">Subject</div><div class="data"><select id="fillsubject" name="fillsubject"></select></div></div></div>';
$.post(document.URL,qstring,function(data){
var subjects = $(data).filter('.subjects');
var subopts = '';
$.each(subjects,function(index,value){
var subid = $(this).attr('id');
var subname = $(this).text();
subopts += "<option value='"+subid+"'>"+subname+"</option>";
});
//after the loop is over building your <options/> inject the html
$('#fillsubject').html(subopts);
});
您正在拆分不必要的<select></select>
。您可以按上述方式执行此操作。
答案 1 :(得分:0)
代码示例如何适合其余的源代码?
而不是使用
mydata += "<option value='"+subid+"'>"+subname+"</option>";
在.each函数中,最好使用
$("#fillsubject").append("<option value='"+subid+"'>"+subname+"</option>");
在您发布的代码示例后,我不知道您在使用mydata
做了什么,但由于.post是异步的,因此当您的js获取时,mydata
可能已经显示给用户来自您服务器的回复。如果是这种情况,那么上面的建议将按预期工作。