我有2个下拉列表,想在改变第一个下拉列表的项时,第二个下拉列表会根据第一个下拉列表的值去数据库查询,查询到的结果作为第二个下拉列表的option的value值
- Java code
<script>$(document).ready( function() { $("#cname").change( function(){ var cnVal=$("#cname").val(); $.ajax({ type:"post", url:"servlet/Test", data : {'cName': $("#cname").val()}, dataType:"json", success:function(data){ alert(data); }}); });}); </script>
这是servlet/Test的内容
- Java code
public class Test extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("GBK"); String cname=request.getParameter("cName"); [color=#FF0000]System.out.println("测试="+cname);[/color]//这一句控制台不打出东西 response.setCharacterEncoding("GBK"); ConnSqlServer co=new ConnSqlServer(); Connection ct=co.connDb(); List list=new ArrayList(); ResultSet rs=null; try { rs=ct.prepareStatement("select classID from classes where className="+cname+"").executeQuery(); while(rs.next()){ String nameCourse=rs.getString("className"); list.add(nameCourse); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } JSONArray json=JSONArray.fromObject(list); PrintWriter pw=response.getWriter(); pw.println(json); pw.flush(); pw.close(); }
现在我改变第一个下拉列表的选项,它根本不走去后台!!请求的url地址是没错的,我直接访问
http://localhost:8100/proj/servlet/Test,页面上显示一对方括号 [],
求解!!
------解决方案--------------------------------------------------------
打个断点 看看进没进Test
我还是怀疑请求地址不对 建议楼主在JSP打印下地址 再从新弄下URL