三级联动怎么回显 javaweb

三级联动怎么回显 javaweb,第1张

以省,市,城联动为例:

此小程序的功能主要是采用异步请求方式从数据库中调取省市区信息显示到下拉列表:

代码如下:

建立数据库中的代码和一些配置文件信息就省略了,主要有JavaScript中的代码为:

$(document).ready(function(){

$.get("getProvince.do", function(result){

$("#showp").html(result)

})

})

var xmlhttp

function mysend(str){

$(document).ready(function(){

$("#show2").html("")

})

var show = document.getElementByIdx_x_x_x_x_x_x_x_x_x("show")

show.innerHTML = ""

var province = document.getElementByIdx_x_x_x_x_x_x_x_x_x("province").value

if(province!=0){

if(window.XMLHttpRequest){

xmlhttp = new XMLHttpRequest()

}else{

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")

}

xmlhttp.onreadystatechange=function(){

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

show.innerHTML = xmlhttp.responseText

}

}

var ss = encodeURIComponent(str)

xmlhttp.open("GET","getCity.do?provinceid="+ss,true)

xmlhttp.send(null)

}

}

function myarea(str){

if(window.XMLHttpRequest){

xmlhttp = new XMLHttpRequest()

}else{

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")

}

xmlhttp.onreadystatechange=function(){

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

var show2 = document.getElementByIdx_x_x_x_x_x_x_x_x_x("show2")

show2.innerHTML = xmlhttp.responseText

}

}

var ss = encodeURIComponent(str)

xmlhttp.open("GET","getArea.do?cityid="+ss,true)

xmlhttp.send(null)

}

html页面中的代码为:

所在地

action中的代码为:

package mobi.zhangsheng.jiejia.action

import java.io.IOException

import java.io.PrintWriter

import java.util.List

import javax.annotation.Resource

import javax.servlet.http.HttpServletRequest

import javax.servlet.http.HttpServletResponse

import org.apache.struts2.ServletActionContext

import org.springframework.stereotype.Controller

import mobi.zhangsheng.jiejia.domain.Areas

import mobi.zhangsheng.jiejia.service.AgentsService

import mobi.zhangsheng.jiejia.service.AreasService

@Controller

public class ProvinceAction {

private int provinceid

private int cityid

@Resource

private AreasService as

@Resource

private AgentsService ags

public int getProvinceid() {

return provinceid

}

public void setProvinceid(int provinceid) {

this.provinceid = provinceid

}

public int getCityid() {

return cityid

}

public void setCityid(int cityid) {

this.cityid = cityid

}

public void getProvince(){

List provinceList = as.getAreasPrvinceList()

HttpServletResponse resp= ServletActionContext.getResponse()

HttpServletRequest request = ServletActionContext.getRequest()

//resp.setContentType("xml")

resp.setContentType("text/html")

resp.setCharacterEncoding("utf-8")

try {

PrintWriter out = resp.getWriter()

out.print("")

//out.print("shanghai")

} catch (IOException e) {

e.printStackTrace()

}

}

public void getCity(){

List cityList = as.getAreasCityList(provinceid)

HttpServletResponse resp= ServletActionContext.getResponse()

//resp.setContentType("xml")

resp.setContentType("text/html")

resp.setCharacterEncoding("utf-8")

try {

PrintWriter out = resp.getWriter()

out.print("")

//out.print("shanghai")

} catch (IOException e) {

e.printStackTrace()

}

}

public void getArea(){

List areaList = as.getAreasCityList(cityid)

if(areaList.size()==0){

}else{

HttpServletResponse resp= ServletActionContext.getResponse()

resp.setContentType("text/html")

resp.setCharacterEncoding("utf-8")

try {

PrintWriter out = resp.getWriter()

out.print("")

} catch (IOException e) {

e.printStackTrace()

}

}

}

}

后台能够打印出来,说明没有问题。问题应在前边的接收端。看代码返回的是json string,对于前端来说应该仅仅是个string,而不是JS对象。

记得JQuery,发送request的时候有参数,可以自动把返回的json string变成js的object的。

简单写了一下,一般来说,在项目里省市区是保存在数据库或者前端页面的js中的,到时候直接查询或者js中用json读取。

一般情况下是省市区三级联动。

现在写的这个是纯java,用的时候需要做一个省类的数组或者List,然后自行添加省市区的数据。

//省类

public class Sheng{

private String name

private ArrayList<Shi> shi= new List<Shi>()

public Sheng(String name){

setName(name)

}

public String getName(){

return name

}

public void setName(String name){

this.name=name

}

public void addShi(Shi shi){

this.shi.add(shi)

}

//TODO

public void printShiList(){

for(Shi s : shi){

System.out.println(s.name)

}

}

}

//市类

public class Sheng{

private name

private String xian[] = new String[]

//TODO

public String getName(){

return name

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10649310.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存