日期:2014-05-17  浏览次数:20526 次

ajax jsp求助
根据所在省份选择城市,利用ajax实现不刷新查询,写出了如下代码,求指教success改怎么写
html代码
所在省份:<s:select list="#provinceBean.selectAll()" name="province" listKey="id" listValue="name" id="province"></s:select><p>
所在城市:
js代码
var p = $('#province').val();
$('#province').change(function(){
p = $('#province').val();
$.ajax({
type:"post",
url:"findCities.jsp",
data:"id="+p,
dataType:"html",
success:{
}
});
});
jsp代码
int id = Integer.parseInt(request.getParameter("id"));
     ResultSet rs = stmt.executeQuery("select * from city where city.province="+id);
     out.print("<select>");
     while(rs.next()){
     out.print("<option value='"+rs.getInt(1)+"'>"+rs.getString(2)+"</option>");
     }
     out.print("</select>");
Ajax JSP HTML select URL

------解决方案--------------------
你这jsp写的不对吧,返回的应该是一个字符串,前台接受字符串并处理之后再显示在前台页面当中。
你这直接输出了一个选项框,那么这个选项框显示在前台中的哪里呢?
------解决方案--------------------
比如“所在城市:”这个页面元素的id为"citylabel",那么可以:
success: function (result){
    $("#citylabel").after(result);     
} 但是怎么样清除已有的下拉框元素我不太清除

不过我一般的做法是将<select></select>写在页面上,如你这里:所在城市:<select id="city"></select>
然后在业务处理时候,就不再拼接select:
int id = Integer.parseInt(request.getParameter("id"));
     ResultSet rs = stmt.executeQuery("select * from city where city.province="+id);
     while(rs.next()){
      out.print("<option value='"+rs.getInt(1)+"'>"+rs.getString(2)+"</option>");
     }
然后在页面上:
success: function (result){
    $("#city").clear();
    $("#city").append(result);     
}