您的位置:首页 > 数据库

dhtmlxtree 后台获取前台tree选中的id以保存到数据库中

2014-02-04 11:06 381 查看
如果你还不知道如何创建一棵树,请看上一篇文档,thankyou思密达!

第一步:

<script type="text/javascript">
$(function(){
var tree2 = new dhtmlXTreeObject("treeboxbox_tree2","100%","100%",0);
tree2.setImagePath("${ctx}/dhtmlxtree/csh_vista/");
tree2.enableCheckBoxes(1);
tree2.enableThreeStateCheckboxes(true);
//tree2.loadXML("${ctx}/dtree/tree3.xml");
//用EL表达式获取json数据
var json = ${json};
tree2.loadJSONObject(json);
//上面是已经把树木显示出来了,下面的代码就是把你选中的id传到后台
//注意的是传过去的也是所有id组成的Json数据格式
$("#submit").click(function(){

//$('input[name="selectedCol"]').val(tree2.getAllChecked());
//document.form1.submit();
var params = "selectedCol="+ tree2.getAllChecked() +"&x="+Math.random();
//id选择器,对应的表单和submit提交按钮一定要设置id与下面名字对应上
$.post($("#form").attr("action")+"?"+params,$("#form").serialize(),function(data){

});
return false;
});
});

</script>
//注意id
<form id="form" name="form" action="${ctx}/security/addRole.action" method="post">
<input id="submit"type="submit" name="submit" value="提交"/>

第二步:你在Action类里要用到的:

var params = "selectedCol="+ tree2.getAllChecked() +"&x="+Math.random();中的selectedCol这个变量,
自然在Action里要是用属性接收,有set和get方法:
private String selectedCol;public String getSelectedCol() {return selectedCol;}public void setSelectedCol(String selectedCol) {this.selectedCol = selectedCol;}
在后台接收到传递过来的id数据是这样的:
{"1","1-1","1-2","f-1-1","2","2-1","f-2-1"}

第三步:

现在你要用的是id,所以接下来你就要想法获取你所需要的id,好了直接给你思路吧,就是用split()方法然后就能获得到你所需要的id,然后再保存到数据库里:方法如下:
String[] para = getSelectedCol().split(",");System.out.println(getSelectedCol());for (int i = 0; i < para.length; i++) {String[] ss = para[i].split("-");if (ss.length == 1) {continue;}if (ss.length == 2) {role.getCols().add(columnService.queryById(Integer.parseInt(ss[1])));}if (ss.length == 3) {role.getPrivs().add(privilegeService.queryById(Integer.parseInt(ss[2])));}}
好了tree的id就获取到并保存到数据库中了。如果想知道如何一进入页面就从数据库中把当前角色的树的id查出来,并在树的id设置自动选中,请看下篇文档,谢谢思密达!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐