$.ajax传参数给后台action的问题 应该可以的。ids 什么类型的〉?试试看看 data : {"ids":ids+""}, 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼主把代码贴完整点吧。ids的值在哪里赋值的? ids赋值的位置很重要,否则,你传不进去值的。 ids是数组。按你得方法可以!但是为什么加“”呢? var ids=[];var rows = $("#table").datagrid('getSelections');for(var i=0; i<rows.length; i++){ ids.push(rows[i].id);} ids赋值的位置很重要,否则,你传不进去值的。$("#delete").bind("click",function(){ var ids=[]; var rows = $("#table").datagrid('getSelections'); for(var i=0; i<rows.length; i++){ ids.push(rows[i].id); }... if(confirm("确定删除吗")){ $.ajax({ url : "ruleManage!delete"", data : {"ids":ids}, type : "post", success : function(data) { alert(data); } }); } }) var ids=[];var rows = $("#table").datagrid('getSelections');for(var i=0; i<rows.length; i++){ ids.push(rows[i].id);}额,数组啊还真没这样传过。刚好找到和你类似的问题,http://bbs.csdn.net/topics/390072895。 楼主传给服务端的如果直接传ids,是数组的那么action那边就要用String[] ids来接收,楼主的action是用String ids来接收并且用了split(",");这种情况很明显要前台的ids是以数组内容的串,这个时候ids.toString()和ids+""都会变成"1,1,2,3,4"这样的字符串传给action 接受方式 , 比如 前面 如 <input name='test' value='1'/> <input name='test' value='2'/>等等后台接受用数组。 String[] test; 楼主传给服务端的如果直接传ids,是数组的那么action那边就要用String[] ids来接收,楼主的action是用String ids来接收并且用了split(",");这种情况很明显要前台的ids是以数组内容的串,这个时候ids.toString()和ids+""都会变成"1,1,2,3,4"这样的字符串传给action是这样啊~那我data写成{"ids":ids},ids中有3个值[2,3,4],然后action中改成private String[] ids;public void setIds(String[] ids) {this.ids = ids;}调试得时候为什么ids.length为1呢,为什么不是3呢?谢谢~ 如果是3个。得类似这种形式<html><head><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script><script type="text/javascript">$(document).ready(function(){ $("button").click(function(){ $("div").text($("form").serialize()); });});</script></head><body><form action="">First name1: <input type="text" name="FirstName" value="Bill1" /><br />First name2: <input type="text" name="FirstName" value="Bill2" /><br />First name3: <input type="text" name="FirstName" value="Bill3" /><br /></form><button>序列化表单值</button><div></div></body></html> 这个你用firebug看下网络,传到action的参数是不是变成ids[] 1ids[] 2ids[] 3这样的,如果是的话这是因为jquery的序列化造成的楼主在发送请求之前加上jQuery.ajaxSettings.traditional=true;这样就可以正常的ids 1ids 2ids 3传参了 这个你用firebug看下网络,传到action的参数是不是变成ids[] 1ids[] 2ids[] 3这样的,如果是的话这是因为jquery的序列化造成的楼主在发送请求之前加上jQuery.ajaxSettings.traditional=true;这样就可以正常的ids 1ids 2ids 3传参了这个你用firebug看下网络,传到action的参数是不是变成ids[] 1ids[] 2ids[] 3这样的,如果是的话这是因为jquery的序列化造成的楼主在发送请求之前加上jQuery.ajaxSettings.traditional=true;这样就可以正常的ids 1ids 2ids 3传参了没错,是ids[] 1 ids[] 2 ids[] 3这样的,加上那句话就好用了!非常感谢!我还想问一下为什么ids[] 1 ids[] 2 ids[] 3 这样的格式就是序列化了,为什么序列化了就不可以呢,序列化到底是什么意思 这是jquery使用ajax方法的时候内部会对data这个数据进行深层次的序列化,对于对象形式的data例如{key:value}的都会调用$.param(data);这种都会进行深层次的序列化.序列化的结果都可以参考jquery文档param的方法说明里面就对比了$.param(data,true);以及$.param(data);的两种结果 这个ids在javascript中没有声明,也没有赋值,应该编译不过去,格式是对的,ids值应该是不行的 这是什么错误、、啊晕啦 Cannot get a connection, pool exhausted 新建的flex如何在eclipse和java项目连接 层的使用~~~ sailfin服务下的sip工程怎么老是报错无效的sip配制 好心人进来看看这个访问的问题。 这是什么错误呀? struts2+hibernate3+spring2 为什么连接数还是不断增加? 如何用jsp或java实现文件的下载?在线等候 java httpclient问题 variable提示无效sql
ids是数组。按你得方法可以!但是为什么加“”呢?
var ids=[];
var rows = $("#table").datagrid('getSelections');
for(var i=0; i<rows.length; i++){
ids.push(rows[i].id);
}
$("#delete").bind("click",function(){
var ids=[];
var rows = $("#table").datagrid('getSelections');
for(var i=0; i<rows.length; i++){
ids.push(rows[i].id);
}
...
if(confirm("确定删除吗")){
$.ajax({
url : "ruleManage!delete"",
data : {"ids":ids},
type : "post",
success : function(data) {
alert(data);
}
});
}
})
var ids=[];
var rows = $("#table").datagrid('getSelections');
for(var i=0; i<rows.length; i++){
ids.push(rows[i].id);
}
额,数组啊还真没这样传过。刚好找到和你类似的问题,http://bbs.csdn.net/topics/390072895。
等等
后台接受用数组。 String[] test;
是这样啊~那我data写成{"ids":ids},ids中有3个值[2,3,4],
然后action中改成
private String[] ids;
public void setIds(String[] ids) {
this.ids = ids;
}
调试得时候为什么ids.length为1呢,为什么不是3呢?谢谢~
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
$("div").text($("form").serialize());
});
});
</script>
</head>
<body>
<form action="">
First name1: <input type="text" name="FirstName" value="Bill1" /><br />
First name2: <input type="text" name="FirstName" value="Bill2" /><br />
First name3: <input type="text" name="FirstName" value="Bill3" /><br />
</form><button>序列化表单值</button>
<div></div>
</body>
</html>
ids[] 1
ids[] 2
ids[] 3这样的,如果是的话这是因为jquery的序列化造成的楼主在发送请求之前加上
jQuery.ajaxSettings.traditional=true;这样就可以正常的
ids 1
ids 2
ids 3传参了
ids[] 1
ids[] 2
ids[] 3这样的,如果是的话这是因为jquery的序列化造成的楼主在发送请求之前加上
jQuery.ajaxSettings.traditional=true;这样就可以正常的
ids 1
ids 2
ids 3传参了这个你用firebug看下网络,传到action的参数是不是变成
ids[] 1
ids[] 2
ids[] 3这样的,如果是的话这是因为jquery的序列化造成的楼主在发送请求之前加上
jQuery.ajaxSettings.traditional=true;这样就可以正常的
ids 1
ids 2
ids 3传参了
没错,是ids[] 1 ids[] 2 ids[] 3这样的,加上那句话就好用了!非常感谢!
我还想问一下为什么ids[] 1 ids[] 2 ids[] 3 这样的格式就是序列化了,为什么序列化了就不可以呢,序列化到底是什么意思