使用$.post()方法时,有多个参数需要传递,并且有一个参数是数组,该怎么写。其他不是数组的参数都穿过去了,就是数组弄半天也没传过去,在线等,求大神//删除按钮 message messageIds action
$(".collection_top a").click(function(){
var message = null;
var messageIds = [];
$(".message_list input:checked").each(function(){
messageIds.push($(this).val());
});
alert(messageIds);
if(messageIds.length==0)return $.box("请勾选要删除的信息");
$.post( $.frontPath + "/messages/ajax/updateMessage.json", {message : message, messageIds : messageIds, action : "delete"}, function(data){
$.refresh();
});
});其中messageIds 就是数组jQuery函数JavaScript$.post()

解决方案 »

  1.   

    你可以以字符串传递,后台再进行分割
    messageIds:messageIds.toString()
      

  2.   

    之前有做过只有一个参数是数组的用$.param(),请问多个参数并且有其他参数类型混合的怎么使用$.param()方法
      

  3.   

    因为messageIds是post方法url调用的方法的参数,所以好像不能用toString();
      

  4.   

    因为messageIds是post方法url调用的方法的参数,所以好像不能用toString();   var messageIds = [];
            $(".message_list input:checked").each(function(){
                messageIds.push($(this).val());
            });
    不用  push了,直接用变量
       var messageIds ='';
            $(".message_list input:checked").each(function(){
                messageIds=messageIds +($(this).val())+',';
            });
      

  5.   


    就是一个controller的方法参数,其他参数都可以直接获得啊,求大神解救啊@RequestMapping(value="ajax/updateMessage.json")
    public Map<String, Object> updateMessage( ModelMap map ,Message message , Long[] messageIds , String action){
    if( "delete".equals(action) ){
     map.put("count",this.messageService.deleteMessage(messageIds));
     return map;
    }else if ("update".equals(action)) {
    if( messageIds != null && messageIds.length > 0 ){
     map.put("count",this.messageService.updateMessageStatus( message.getStatus() ,messageIds));
    }else if(this.messageService.updateMessageStatus(message) != Global.UPDATE_ERROR){
    map.put("message", message);
    }else{
    return this.createJSONError("update message error");
    }
    return map;
    }

    return this.createJSONError("un know update action error");
    }
      

  6.   

    因为messageIds是post方法url调用的方法的参数,所以好像不能用toString();   var messageIds = [];
            $(".message_list input:checked").each(function(){
                messageIds.push($(this).val());
            });
    不用  push了,直接用变量
       var messageIds ='';
            $(".message_list input:checked").each(function(){
                messageIds=messageIds +($(this).val())+',';
            });这样传过去的是字符串啊,
      

  7.   

    因为messageIds是post方法url调用的方法的参数,所以好像不能用toString();   var messageIds = [];
            $(".message_list input:checked").each(function(){
                messageIds.push($(this).val());
            });
    不用  push了,直接用变量
       var messageIds ='';
            $(".message_list input:checked").each(function(){
                messageIds=messageIds +($(this).val())+',';
            });这样传过去的是字符串啊,再分割成数组啊
      

  8.   

    如果是数组的就不能用对象的形式来传,而要变为字符串的形式来传参数,因为对象是键值对,如果有两个id,第二个会把一定冲掉,可以这样写$.post(url,"id=1&id=2",function(){});这样就可以传到后台数组了
      

  9.   

    数组还是得组成字符串传过去,如果是php的话 就直接传了
      

  10.   

    var messageIds = [];
    $(".message_list input:checked").each(function(){
        messageIds.push({$(this).val()});
    });$.ajax(
        url:'xx.php',
        data: {messageIds: messageIds}
    );