根据数据库中的数据动态生成select,然后再根据select动态生成option。
我js实在太差了。搜了半天都搞不定。我的思路是:
1.在load页面时将select中的内容全部动态生成----但怎么实现在页面加载时load进来数据呢?以什么格式load以及怎样解析?
2.在选择select时,再根据事件动态生成option中的内容感觉不是很难,但时间很紧,怕搞不定了,拜托大家帮忙了!!

解决方案 »

  1.   

    生成select的数据在哪了,已经拿到页面上了?还是用ajax从数据库取,
      

  2.   

    我想在访问页面后,使用ajax自动从数据库中取出来
      

  3.   

    思路有偏差。JS直接访问数据库麻烦呢。
    不要用JS做,在Server端用Java做吧。
      

  4.   

    我是想在页面用ajax调用后台方法,然后用json返回来,再在页面解析、显示,您是否也是这个意思呢
      

  5.   

    $(function(){$("#button").click(function(){
    $("#div").append("<select id='select'></select>")
    $.getJSON("selectUser.action",null,function(json){
    $.each(json,function(i,data){
    var id=data.id
    var name=data.name;
    $("#select").append("<option id='"+id+"'>"+name+"</option>")
    })
    })
    })
    <body>
    <div id='div'></div>
    <button id='button'>生成select</button>
    </body>
    ------------------------------------------------------
    selectUser.action:List<Users> list=usersDAO.findAll();
    response.setContentType("text/html; charset=utf-8");
                      try {
                            PrintWriter out = response.getWriter();
    JSONArray array=new JSONArray();
    array.addAll(list,config);
    out.print(array.toString());
    out.flush();
    out.close();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return null;
    })
      

  6.   

    action写错了、、、看这个selectUser.action:List<Users> list=usersDAO.findAll(); 
    response.setContentType("text/html; charset=utf-8");
      try {
      PrintWriter out = response.getWriter();
    JSONArray array=new JSONArray();
    array.addAll(list);
    out.print(array.toString());
    out.flush();
    out.close();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return null;
    })
      

  7.   

    非常感谢!!!这个我先试试,我还需要根据select选择不同的option,再填充下面的select,如下:下面的select是一个多选的<select name="leftItem" style="width: 180px" size="10" multiple="multiple">
      

  8.   

    1.我需要做一个页面,如下:2.根据数据库中的部门填充select中的option
    3.然后根据选择不同的option,在动态的在下面的select中显示这个部门中对应的用户
      

  9.   

    js重新更改一下$(function(){$("#button").click(function(){
    $("#div").append("<select id='select' onchange='change();'></select>")
    $.getJSON("selectUser.action",null,function(json){
    $.each(json,function(i,data){
    var id=data.id
    var name=data.name;
    $("#select").append("<option id='"+id+"'>"+name+"</option>")
    })
    })
    })change(){
      var id=$("#select").val();
     $.getJSON("selectUser2.action",{id:id},function(json){
     $.each(json,function(i,data){
      var id=data.id;
      var name=data.name;
    $("#你的另一个下拉框的id").append("<option value='"+id+"'>"+name+"</option>")
    })
    })
    }
    selectUser2.action:
    int id=Integer.parseInt(request.getParameter("id"));
     List<Users> list=usersDAO.findById(id);
    response.setContentType("text/html; charset=utf-8");
      try {
    PrintWriter out = response.getWriter();
    array.addAll(list);
    out.print(array.toString());
    out.flush();
    out.close();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return null;
      

  10.   


    $("#你的另一个下拉框的id").append("<option value='"+id+"'>"+name+"</option>")这句话为什么append不到select中呢?而且第一次发的代码也append不到select中,我需要自己先append一个option:$("#select").append("<select id='deptSelect' onchange='change();' style='width: 180px;'><option>请选择</option></select>")然后再append option才能append进去:$("#deptSelect").append("<option value='"+id+"'>"+name+"</option>")
      

  11.   

    首先: select 的初始化数据可以使用 JSP 的脚本元素生成数据
     至于option 可以是用 AJAX 来做,这样会给用户很好的体验!
      

  12.   

    $("#你的另一个下拉框的id").append("<option value='"+id+"'>"+name+"</option>")$("#你的另一个下拉框的id")是指已有的...如果没有创建的话、、你就得先创建以下、、、我想你应该懂得!!!还有其他问题么?!
      

  13.   

    第一个select我是嵌入到div里面的你看html里面有一个<div id='div'></div>估计这句话你没有写进去
      

  14.   

    没错啊,我就是这么做的<script type="text/javascript">
    $(function(){
    $("#select").append("<select id='deptSelect' onchange='change();' style='width: 180px;'><option>请选择</option></select>")
    $.getJSON("DeptServlet",null,function(json){
    $.each(json,function(i,data){
    var id=data.id
    //alert("id :" + id);
    var name=data.name;
    //alert("name : " + name);
    $("#deptSelect").append("<option value='"+id+"'>"+name+"</option>")
    })
    })
    }); function change(){
    var id=$("#deptSelect").val();
    //alert(id);
    $.getJSON("DeptServlet2",{id:id},function(json){
    $.each(json,function(i,data){
    var id=data.id;
    var name=data.name;
    //alert(id);
    //alert(name);
    $("#leftItem").append("<option value='"+id+"'>"+name+"</option>");
    //$("<option value='"+id+"'>"+name+"</option>").appendTo("#leftItem");
    })
    })
    }
    </script>请选择部门:
    <div id="select">
    </div>
    <br />
    <div>
    <select name="leftItem" style="width: 180px" size="10"
    multiple="multiple">
    <option>无</option>
    </select><br/>
    </div>
    <input type="checkbox" value="">选择所有部门人员
      

  15.   

    我的select标签中没有指定id,而是指定的name,所以取不到,问题解决了