jquery如何动态实现填充下拉框?

hehe389 2008-12-29
现在有一个项目需要实现一个功能 当点下拉框时动态加载后台数据。框架jquery+Struts2+SPring2.5+ibaits2.3.自己查资料写了一个单在火狐下可以实现效果(报错XX未定义),在IE下为能填充下拉框(类型不匹配)
$(function() {
    $("#Select1").one("click",function() {
        $.ajax({
                url :'loadTeacher.action',  //后台处理程序
                type:'post',    //数据发送方式
                dataType:'json',   //接受数据格式
                success:callbackFun1  //回传函数(这里是函数名)
        } )
    })
    function callbackFun1(data){
        for(var n=0;n<=data.teachers.length;n++){
        $("#Select1").get(0).add(new Option(data.teachers[n].love,data.teachers[n].teacher),document.getElementById(data.teachers[n].love) ? 0 : null )

        }
    }

})

请解答,如果有已经写好的源代码麻烦发一份给我参考hewei19842002@yahoo.com.cn
wxw404 2009-05-06
类似问题,期待中
wangyan2009 2009-12-18
我这有一个例子,给你看看吧
这是后台数据
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
Map<String, String> product_names = DataManager.getGroup_names();
StringBuffer sb = new StringBuffer();
sb.append("{");
Set<String> keys = product_names.keySet();
for(Iterator<String> iter = keys.iterator();iter.hasNext();) {
String key = iter.next();
sb.append(product_names.get(key)+":");
sb.append("['"+key+"'],");
}
sb.deleteCharAt(sb.length()-1);
sb.append("}");
response.getWriter().write(sb.toString());
}
前台设值
$.ajax({
type:"post",
url:"InitData",
data:"",
success:function(data) {
var map =  eval("("+data+")");
$.each(map,function(key,values){
$("<option value="+values+">"+key+"</option>").appendTo("#p_name");
}
); 
}
});

不知道对你有没有用
zhaoliaoyuan 2009-12-30
public void getCascadeAjax() {
request = ServletActionContext.getRequest();
String vid = request.getParameter("id");

long id = Util.getInt(vid);

Category category = new Category();
category.setId(id);

Category category1 = new Category();
category1.setCategory(category);

List cList = cascadeBiz.getCateGory(1, category1);
cList = this.getParse(cList);

resp = ServletActionContext.getResponse();
resp.setContentType("text/xml;charset=utf-8");
resp.setHeader("Cache-Control", "no-cache");
JSONArray jsonArray = JSONArray.fromObject(cList);
PrintWriter writer;
try {
writer = resp.getWriter();
writer.print(jsonArray);
writer.flush();
writer.close();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

public List getParse(List list) {
List listTemp = new ArrayList();
CascadeTemp temp = null;

for (int i = 0; list.size() > i; i++) {
temp = new CascadeTemp();
Category temp1 = (Category) list.get(i);
temp.setId(temp1.getId());
temp.setName(temp1.getName());
listTemp.add(temp);
}
return listTemp;
}
/////////////////////////////////////////////////////////////
<script type="text/javascript">
function selectType(){
var id =$("#select1").val();//一级下拉框Id
alert(id);
var vid="id="+id;
   
    $.getJSON("http://localhost:8080/superPlayer/cascade/getCasAjax.action", vid,function call(data){  
             writeHtml(data); 
        });
}  
function writeHtml(data){
    var sel = $("#select2");二级下拉框Id
    sel.empty();
$.each(data,function(i, item){//填充到二级下拉框
                   $("<option value='"+item.id+"'>"+item.name+"</option>").appendTo(sel);
                }); 
         }
<script>
张显维 2010-07-26
[u][/u]
wangchongbiao 2011-09-05
等待中。。。。。。。。。。。
guoqiang1608 2011-09-14
             
zfcejb 2012-03-06
上网搜jquery autocomplete
Global site tag (gtag.js) - Google Analytics