我有2个下拉列表,想在改变第一个下拉列表的项时,第二个下拉列表会根据第一个下拉列表的值去数据库查询,查询到的结果作为第二个下拉列表的option的value值
<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的内容
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");
System.out.println("测试="+cname);//这一句控制台不打出东西 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