ztree获取超过30个勾选的节点,无法正常执行了???

_零_ 发布于 2017/02/13 12:08
阅读 137
收藏 0
请问各位大神:
一旦勾选的节点数超过30个,提交按钮就没有任何反应,少于30个却可以正常工作,想知道有什么解决办法??  先谢各位能帮忙。
$("#auth_btn").on("click", function () {
    //alert('错误');
    var checked_ids,auth_rule_ids = [];
    checked_ids = zTree.getCheckedNodes(true); // 获取当前选中的checkbox
    $.each(checked_ids, function (i, item) {
        auth_rule_ids.push(item.id);
    });
    $.ajax({
        url: "{:U('Home/AuthGroup/updateAuthGroupRule')}",
        type: "post",
        cache: false,
        data: {
            id: _id,
            auth_rule_ids: auth_rule_ids
        },
        success: function (data) {
           //alert('错误');
            if(data.status=='error'){
                layer.msg(data.msg,{icon: 5});//失败的表情
                return;
            }else{
                layer.msg(data.msg, {
                    icon: 6,//成功的表情
                    time: 2000 //2秒关闭(如果不配置,默认是3秒)
                }, function(){
                    location.reload();
                });
            }
        }
    });
});
});

 

加载中
0
风翔飞
风翔飞

请求到后台了吗?看你没做error的捕捉判断,没反应应该是后台出错,不是后台返回错误,而是直接走ajax的error。建议看下后台log

0
_零_
_零_

终于查出原因了,因为将auth_rule_ids 存数据库时,字符串长度超过设定长度,数据更新失败。

但是就算数据更新失败我也有返回提醒,为什么会没有反应,ps:我用的是thinkphp框架

if ($this->admin_auth_group_model->save($group_data) !== false) {
   $this->ajaxSuccess('授权成功');
} else {//$this->ajaxError('授权失败');
 $this->ajaxError('授权失败');
}
0
蓝水晶飞机
蓝水晶飞机
Ajax最后还有个失败的回调处理,不然就请求不成功的时候无任何反应,用户已为你有BUG!jquery 延迟对象。
返回顶部
顶部