联动省市下拉框

    xiaoxiao2021-03-25  139

    jsp页面


    <body> <table> <Tr> <Td> 省份:<s:select list="ar" listKey="PId" listValue="PName" name="xx" id="pid" theme="simple" onchange="lisheng(this);"></s:select>  城市: <select id="yy"> <option value="0">---请选择---</option> </select>  <input type="button" value="查询" id="se" onclick="myclick();"> </Td> </Tr> </table> </body>

    jsp页面

    var xmlhttp;

    function getIE() { if(window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); } else { xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”); } }

    function lisheng(obj) { getIE(); var url=”${pageContext.request.contextPath}/pro_allc.action?pid=”+obj.value; xmlhttp.open(“post”,url,true); xmlhttp.send(); xmlhttp.onreadystatechange=getBack; }

    function getBack() { if(xmlhttp.readyState==4&&xmlhttp.status==200) {

    //清空城市这个下拉框 while(document.getElementById("yy").options.length>0) { document.getElementById("yy").removeChild(document.getElementById("yy").childNodes[0]); } //第二个:注意地方(s) var t= xmlhttp.responseXML.getElementsByTagName("city"); //第三个:注意 for(var i=0;i<t.length;i++) { //第四个:注意地方 var option=document.createElement("option"); option.value=t[i].childNodes[0].childNodes[0].nodeValue; option.text =t[i].childNodes[1].childNodes[0].nodeValue; //第五个地方:注意! document.getElementById("yy").options.add(option); } }

    }

    function myclick() { var pid=document.getElementById(“pid”).value; var cid=document.getElementById(“yy”).value; alert(pid+” “+cid); }


    Action页面 // 得到省份 public String allp() {

    List arx=this.dao.getAll(); //构造一个"请选择" TProvince p=new TProvince(); p.setPId(0); p.setPName("---请选择---"); ar.add(p); for (int i = 0; i < arx.size(); i++) { TProvince pp=(TProvince) arx.get(i); ar.add(pp); } return "myall"; } // 得到省份下的城市 public String allc() { try { if(pid!=0) { this.arr = this.dao.getAllC(pid); // 如何构造一个下拉框(第一个注意地方:xml) HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/xml"); response.setCharacterEncoding("UTF-8"); response.setHeader("Cache-Control", "no-cache"); PrintWriter out = response.getWriter(); out.print("<response>"); for (int i = 0; i < arr.size(); i++) { TCity c=(TCity) arr.get(i); out.print("<city>"); out.print("<cid>"+c.getCId()+"</cid>"); out.print("<cname>"+c.getCName()+"</cname>"); out.print("</city>"); } out.print("</response>"); out.flush(); out.close(); } else { // 如何构造一个下拉框(第一个注意地方:xml) HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/xml"); response.setCharacterEncoding("UTF-8"); response.setHeader("Cache-Control", "no-cache"); PrintWriter out = response.getWriter(); out.print("<response>"); out.print("<city>"); out.print("<cid>0</cid>"); out.print("<cname>---请选择---</cname>"); out.print("</city>"); out.print("</response>"); out.flush(); out.close(); } } catch (Exception e) { e.printStackTrace(); } return null; } ******************************************

    public List getAll() { List ar=this.getSesison().createQuery(“from TProvince”).list(); this.closeAll(); return ar; }

    public List getAllC(int pid) { List ar=this.getSesison().createQuery("from TCity a where a.TProvince.PId=?").setInteger(0,pid).list(); this.closeAll(); return ar; }
    转载请注明原文地址: https://ju.6miu.com/read-7997.html

    最新回复(0)