从数据库表中获取值到选择框中

时间:2011-06-20 11:04:43

标签: php javascript mysql

我正在创建一个从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>';     

2 个答案:

答案 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可能已经显示给用户来自您服务器的回复。如果是这种情况,那么上面的建议将按预期工作。