问题描述
- 请问下这段代码有什么问题,数据也已经返回了
-
<%@ page language="java" pageEncoding="UTF-8"%> <script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-2.1.1.js"></script> <script type="text/javascript"> function xiaoshou(){ var suoshubumen=document.getElementById("find").value; console.info(suoshubumen); $.ajax({ url:"crmuserAction!findBySuoshubumen.action?suoshubumen="+suoshubumen, type:"post", dataType:'json', success:function(r){ for(var i=0; i< r.length;i++){ $("#ych").append("<option value='"+r[i].name+"'>"+r[i].name+"</option>"); } }, error:function(){ console.info("error"); } }); } </script> <div> <form> <table cellpadding="5" cellspacing="5"> <tr> <td colspan="6">销售部门:</td> <td> <select id="find" onchange="xiaoshou(this.value)"> <option></option> <option id="zhuguan" value="销售部主管">销售部主管</option> <option id="guwen1" value="顾问1部">顾问1部</option> <option id="guwen2" value="顾问2部">顾问2部</option> </select> </td> </tr> <tr> <td colspan="6">销售人员:</td> <td class="start" style="200px"> <select id="ych" name="name" > </select> </td> </tr> </table> </form> </div>
解决方案
你的后台Action可能有问题,前台页面JSP是正确的。我后台用SpringMVC返回的,示例代码:
@RequestMapping(value="/getList")
@ResponseBody
public List getList(String suoshubumen){
List<Person> list = new ArrayList<Person>();
if("销售部主管".equals(suoshubumen)){
list.add(new Person("z1","1"));
list.add(new Person("z2","1"));
list.add(new Person("z3","1"));
list.add(new Person("z4","1"));
}else if("顾问1部".equals(suoshubumen)){
list.add(new Person("w1","1"));
list.add(new Person("w2","1"));
list.add(new Person("w3","1"));
list.add(new Person("w4","1"));
}else{
list.add(new Person("r1","1"));
list.add(new Person("r2","1"));
list.add(new Person("r3","1"));
list.add(new Person("r4","1"));
}
return list;
}
解决方案二:
没有什么问题啊,数据都返回了,功能就实现了啊
解决方案三:
我发现问题了,你的数据类型写错了,应该是json,你看你写的
解决方案四:
没有什么问题啊,数据都返回了,功能就实现了
解决方案五:
肯定是没传对数据啊,你把类型写成json,然后用火狐看串返回到前台了么,没有就是出错了,我在上班,不能多说了
解决方案六:
我测试了你的代码,就是一个简单问题 dataType:'josn',你写的类型json拼写错误了。还有你的form也拼写错误。改正就好!祝好!
dataType:'json',
解决方案七:
修改好楼上说的错误后,自己查看数据返回的格式是什么,你代码解析和你返回的格式不一样也获取不到值
你用的jquery版本大于1.4,指定dataType为json一定要返回标准格式的json字符串,怪异模式也不会执行success回调。jquery dataType json
如返回{data:123},执行error,要返回{"data":123}
解决方案八:
1、请把【响应】的返回文本发上来而不是json选项卡。
2、看你的json返回是要解析返回对象的rows
所以for要遍历r.rows。for改与成如下
for(var i=0,item;item=r.rows[i];i++)
{
$("#ych").append(""+item.name+"");
}
3、如果在【响应】选项卡中看到返回的文本以"开头"结尾请使用eval方法把文本转化为js对象
var data=eval("("+r")");
遍历data.rows
时间: 2024-09-18 20:58:24