需求:在页面中实现两个select级联,selectA中的选择项数据是从数据库中查询出来的,selectB中的选择项需要根据selectA中被选中的选项列出对应的值(场景:用户选择某个部门后,岗位选择框中出现对应部门下面的岗位名称)。
页面select中的option是用<jsp:include page="../select.jsp"><jsp:param name="name1",value="value1"></jsp:include>标签实现选项值的列表。我的实现想法是:用javascript获取selectA的选中值,再将这个值传递到select.jsp页面去,再根据这个值去查询数据库,获取部门下的职位数据。但是现在的问题是:jsp页面取不到javascript传递过来的参数,请教各位有什么办法解决吗?

解决方案 »

  1.   

    首先说明   js貌似不能传递参数     其实你可以这样做 (我只说下思路    具体的操作代码  我忘了   好久没用js了 )   1,你可以首先在数据库中取出相应的值来   
       2,再把这些值传递到js函数中   用循环进行显示(但具体的对应关系有点小麻烦)
      

  2.   

    大名DD的AJAX就来来解决这种问题的
      

  3.   

    <jsp:include page="../select.jsp"><jsp:param name="name1",value="value1"></jsp:include>搞不懂你为什么要这样写,直接写在一个页面不好吗?
    你这里确实要用到ajax,selectA这里加一个onchange事件!
    但你却是传到jsp,貌似无法用ajax了!
    在onchange事件触发的方法里获取选中的列表框值!
    然后你就可以用location.href="XXX.jsp?id=X";
    在另一个页面用request.getParameter("id");可以获取到值了!
      

  4.   

    我也同意用ajax做,这样不用把参数传递到jsp页面,但是有个疑问,如果用ajax,怎么把查询到数据有多条,怎么在下拉列表中显示啊
      

  5.   

    同意ajax,效果也好些,更推荐jq的ajax实现起来方便些,循环遍历,代码不复杂的,网上查查应该有类似的
      

  6.   

    JSP怎么去取不到JS的值呢?
    你可以在JS中form提交
      

  7.   


    不用ajax是因为这个系统完全就没有用ajax,我们是做二次开发。
      

  8.   


    用URL带参数的方式是可以传参过去,但是会引起页面显示问题,因为select.jsp是没有东西的。
      

  9.   

    在后台用Map把部门对应的岗位存入,jsp页面你可以先建个隐藏域用于存放选中的部门id,selectionA 中的change事件中可以对隐藏域进行赋值,selectionB中就可以取出隐藏域的值达到传参的目的,根据部门id在map中取出对应的岗位就可以了
      

  10.   

    在页面定义全局变量HashMap map<int,List<String>>,初始化的时候把二级菜单的值放进去,一级菜单的ONCHANGE事件里得到MAP 根据建来找值,最后用JS把获得的值循环得到<option>
      

  11.   


    兄弟,你的思路是正确的!谢谢各位的回复,这个问题今天终于解决了,方案是:在jsp页面<%...%>中先将需要的数据都取出来放到list中,将key和value用|连接组装成一个string,然后将该string赋给javascript中的变量 var job1 = "<%=job1%>";最后在脚本中再根据selectA选取的值去解析需要的string,再组装成selectB的可选项。