2011-06-20 47 views
0

我創建一個組合框,它從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

是不是從你的請求中得到任何結果的意義上的MySQL問題?或者是上面的jQuery代碼不工作?如果你對subid和subname做一個提醒,看看它們是否真的包含任何東西,那將會很好。 – Abhay

+0

@Abhay結果即將到來。 –

+0

很高興知道! :-) – Abhay

回答

0

代碼示例如何適合您的其他源代碼?

,而不是你的。每個功能使用

mydata += "<option value='"+subid+"'>"+subname+"</option>"; 

,你會使用

$("#fillsubject").append("<option value='"+subid+"'>"+subname+"</option>"); 

會更好,我不知道你的代碼示例後mydata做你但是由於.post是異步的,因此當您的js從您的服務器獲得答覆時,mydata可能已經顯示給用戶。如果是這種情況,那麼上面的建議將按預期工作。

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>,這是沒有必要的。你可以像上面那樣做。

相關問題