下面的例子是根据选择省份,查出省份下的仓库
js页面:
<html>
<head>
<script type="text/javascript">
var xhr=false;
function createXHR(){
try{
xhr=new XMLHttpRequest();
}catch(e){
try{
xhr=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e1){
try{
xhr=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e2){
xhr=false;
}
}
}
if(!xhr){
alert("对不起,您现在所使用的浏览器,无法创建XMLHttpRequest对象");
}
}
function porChange(){
createXHR();
var proid=document.getElementById("pro").value;
var url="<%=request.getContextPath()%>/cameraOperate.do?method=getPro&proid="+proid;
xhr.open("POST",url,true);
xhr.onreadystatechange=callback;
xhr.send(null);
}
function callback(){
if(xhr.readyState==4){
if(xhr.status==200){
var warehouses=eval(xhr.responseText);
var ware=document.getElementById("warehouse_id");
ware.options.length=0;
var op1;
if(warehouses!=null){
for(var i = 0; i<warehouses.length;i++){
ware.add(new Option(warehouses[i]["name"], warehouses[i]["id"])); }
}
}
}
}
</script>
</head>
<body>
<tr>
<td align="right" width="10%">所属库所在省份:</td>
<td align="left" width="20%">
<select id="pro" name="pro" style="width:200" onchange="porChange();">
<c:forEach items="${prolist}" var="pr" varStatus="p">
<option value="${pr.id}">${pr.name}</option>
</c:forEach>
</select>
<script>
for(var i=0;i<document.getElementById('pro').options.length;i++){
if(document.getElementById('pro').options[i].value==='${cameraOperateForm.proid}'){
document.getElementById('pro').options[i].selected=true;
}
}
</script>
</td>
</tr>
<tr class="common">
<td align="right" width="8%">所属库:</td>
<td align="left" width="20%">
<html:select styleId="warehouse_id" name="cameraOperateForm" property="warehouseid" style="width:200" value="warehouse_id.name">
<html:options collection="warehouses" labelProperty="name" property="id" />
</html:select>
<script>
document.getElementById("warehouse_id").value="${cameraOperateForm.warehouse_id.id}";
</script>
<font color="red">*</font>
</td>
</tr>
</body>
</html>
java界面(我这里用的是struts1,原理都是一样的)
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)throws Exception
{
CameraOperateForm cameraOperateForm = (CameraOperateForm)form;
CameraService cameraService = (CameraService)getWebApplicationContext().getBean("cameraService");
CameraOperateVo camerOperateVo = new CameraOperateVo();
if("getPro".equals(cameraOperateForm.getMethod())){
WareHouseService wareHouseService = (WareHouseService)getWebApplicationContext().getBean("wareHouseService");
List<DictWarehouse> warehouses=wareHouseService.getWareHouseByProvinceId(cameraOperateForm.getProid());
//下面是把集合循环出来,获得数组中的对象,并用对象的id,name值组成String 的json形式,写入流。在后台就可以获取到json
String json = "[";
if(warehouses!=null && warehouses.size()>0){
for (DictWarehouse obj : warehouses) {
json = json + "{id:" + obj.getId() + ",name:'" + obj.getName() + "'},";
}
json = json.substring(0, json.length() - 1) + "]";
}else{
json="";
}
response.setCharacterEncoding("UTF-8");
PrintWriter out=response.getWriter();
out.print(json); return null;
}
}
分享到:
相关推荐
本篇文章主要是对js对ajax返回数组的处理进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
利用AJAX传递JSON数组,后台struts2的action接收。 详细代码简单易懂。
ajax里response返回的数据是一个二维数组,比如这样的[{key,val},{key,val},{key,val}],这个就是传说中的json数据了,以这样的形式数据传到前台,实现菜单联动下拉框;具体怎么样,详情请仔细查看以下内容
自己写的一个demo,利用ajax回调php返回的json数据,并实现页面的局部刷新,方便大家学习使用,
需求: 在JS中向后台传递数组参数 分析: JS中的数组是弱类型的可以放任何类型(对象、基本类型),但是如果数组中放的是对象类型,传递到后台是显示的只能是对象字符串–[object Object],原因如下: 在后台接收的...
ajax json 遍历json数组,json的说明文档,json操作说明
我们在使用ajax异步的提交多选框得到需要操作的对象的id,这时我们可以把每一个id做出一个对象,之后放到一个数组中,再使用JSON.stringify()对这个数组进行json的格式化;在后台中再inputStream中解析出我们的json...
| AjaxTablePage 1.01 | AJAX数组表格分页类 | |-------------------------------------------------------------------| | Copyright (c) 2009 Apollo Updated: 2009年2月5日9:44:56| | | | ...
js+ajax 实现select下拉框无限级动态添加,代码简洁方便,哥想了很久才做出来的,欢迎使用
ajax传递list对象数组
Ajax-bootstrap-select-ajax.zip,bootstrap select对数据源的ajax支持,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新...
google搜到的。我看大神的文章发布时间是2014年5月。亲测好用。 某度搜技术类的真真真心不行。
jquery Ajax实现Select动态添加数据,具体内容如下 1.背景 最近在工作中,遇到了一个关于select的问题。一般情况下,select下拉框中的数据都是固定的或者直接在jsp中读取列表值显示。但是,这次要实现select与别的...
jQuery Ajax向某个页面传值并取得返回的数组
从客户端处理服务器传来的JSON值 自己写的一个小例子,运行无异常.
今天小编就为大家分享一篇ajax获得json对象数组 循环输出数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
今天重温了一个问题,jQuery.ajax向后台传递一个数组,而在后台接收不到该值。 前台js方法部分代码如下: //创建一个测试数组 var boxIds = new Array(); boxIds.push(12182); boxIds.push(12183); boxIds.push...