日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php ztree异步加载数据格式,zTree异步加载简单demo

發布時間:2025/3/15 php 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php ztree异步加载数据格式,zTree异步加载简单demo 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這幾天花了些時間,試了試zTree自帶的異步加載方式 還不錯.

有個奇怪的問題:

無論我在服務器設置 setContentType("text/plain;charset=UTF-8")或是 setContentType("application/json;charset=UTF-8"),zTree都會把接收到的數據當json格式,除非不符合json格式.

(另:JSONBuilder是個簡單的json處理類,適用于不復雜的數據格式)

以下是簡單的demo

test2.html

無標題文檔

var nodeIcon = "images/4.png";

var groupIcon = "images/1_open.png";

function initTree(){

var setting = {

check: {

enable: true

},data: {

simpleData: {

enable: true

}

},async: {

enable: true,url:"http://localhost/web_test1/action/test2Action.jsp",dataType: "text",dataFilter: ajaxDataFilter,autoParam:["id"]

}

};

/***/

var zNodes =[

{id:"userGroup:__ALL__",name:"全部用戶組",open:true},{pId:"userGroup:__ALL__",id:"userGroup:001",name:"用戶組_001",isParent:true,open:false,icon:groupIcon},id:"userGroup:002",name:"用戶組_002",id:"hostGroup:001",name:"設備組_001",id:"hostGroup:002",name:"設備組_002",icon:groupIcon}

];

/***/

$.fn.zTree.init($("#myTree"),setting,zNodes);

}

function ajaxDataFilter(treeId,parentNode,data) {

//alert(data);

//alert( $(data).attr("count"));

var array = [];

//var jsonp = $.parseJSON(childNodes);

//var nc = parseInt($(jsonp).attr("count"));

var nc = parseInt($(data).attr("count"));

var _pId = parentNode.id;

var _id = null;

var _name = null;

//alert($(data).attr("id["+ i +"]"));

//alert("nc:"+nc);

//alert(parentNode.id);

for(var i=0; i

//item = {pId:parentNode.id,id:$(jsonp).attr("id["+ i +"]"),name:$(jsonp).attr("name["+ i +"]"),isParent:false,open:true};

//item = {pId:parentNode.id,id:"test:"+i,name:"test_"+i,open:true};

_id = $(data).attr("id["+ i +"]");

_name = $(data).attr("name["+ i +"]");

array[i] = {pId:_pId,id:_id,name:_name,open:true,icon:nodeIcon};

}

return array;

}

function old_ajaxDataFilter(treeId,childNodes) {

//alert(childNodes);

var txt = "";

var jsonp = $.parseJSON(childNodes);

var nc = parseInt($(jsonp).attr("count"));

for(var i=0; i

txt += $(jsonp).attr("id["+ i +"]") + "
";

}

alert(txt);

return null;

}

$(document).ready(function(){

initTree();

});

.div_frame{

width:800px;

border: 1px solid #a5a4a4;

}

.div_tree{

width:300px;

height:200px;

overflow:auto;

border: 1px solid #a5a4a4;

}

test2Action.jsp

Insert title here

// String json = "{\"count\":\"3\",\"id[0]\":\"id_0\",\"id[1]\":\"id_1\",\"id[2]\":\"id_2\"}";

//String json = "{\"count\":\"2\",\"name[0]\":\"name_0\",\"name[1]\":\"name_1\",}";

String json = null;

Random rand = new Random(System.currentTimeMillis());

int count = rand.nextInt(8)+2;

JSONBuilder js = new JSONBuilder();

js.put("count",""+count);

for(int i=0; i

js.put("id["+ i +"]","test:"+i);

js.put("name["+ i +"]","test:"+i);

}

json = js.toJsonString();

String id = request.getParameter("id");

System.out.println("id:" + id);

//json => application/json text/x-json

// response.setContentType("text/plain;charset=UTF-8");

response.setContentType("application/json;charset=UTF-8");

response.setCharacterEncoding("UTF-8");

PrintWriter pw = response.getWriter();

pw.write(json);

pw.flush();

pw.close();

%>

JSONBuilder.java

package org.sl.json;

import java.util.Enumeration;

import java.util.Iterator;

import java.util.LinkedHashMap;

import java.util.Map;

import java.util.Properties;

/**

* 可以用來處理格式比較簡單的json字符串

* @author shanl

*

*/

public class JSONBuilder {

//private Properties dict = new Properties();

private Map dict = new LinkedHashMap(20);

/**

* 寫入一個鍵/值對

* @param key

* @param value

*/

public void put(String key,String value){

this.dict.put(replaceJsonChar(key),replaceJsonChar(value));

}

private String replaceJsonChar(String str){

StringBuilder sb = new StringBuilder();

char[] chs = str.tocharArray();

for(char c: chs){

switch (c) {

case '\"':

sb.append("\\\"");

break;

case '\\':

sb.append("\\\\");

break;

case '/':

sb.append("\\/");

break;

case '\b':

sb.append("\\b");

break;

case '\f':

sb.append("\\f");

break;

case '\n':

sb.append("\\n");

break;

case '\r':

sb.append("\\r");

break;

case '\t':

sb.append("\\t");

break;

default:

sb.append(c);

}

}

return sb.toString();

}

/**

* 返回鍵/值對列表

* @return

*/

public Map getDict(){

return dict;

}

/**

* 返回鍵所對應的值

* @param key

* @return

*/

public String getValue(String key){

return dict.get(key);

}

/**

* 解析json格式字符串

* @param json

*/

public void parseJsonString(String json){

String _json = json;

String[] ss = null;

String[] tmp = null;

_json = _json.trim(); //去掉兩端空格

_json = _json.substring(2); //去掉 {"

_json = _json.substring(0,_json.length()-2); //去掉 }"

ss = _json.split("\",\"");

for(String s: ss){

tmp = s.split("\":\"");

put(tmp[0],tmp[1]);

}

}

/**

* 將數據轉換成json格式字符串

* @return

*/

public String toJsonString(){

String sb = "";

String key = null;

String value = null;

Iterator keys = dict.keySet().iterator();

//Enumeration keys = dict.propertyNames();

sb += "{";

while(keys.hasNext()){

key = keys.next();

value = dict.get(key);

sb += "\""+ key +"\":";

sb += "\""+ value +"\",";

}

if(sb.endsWith(",") ){

sb = sb.substring(0,sb.length()-1);

}

sb += "}";

return sb.toString();

}

public String toString(){

return toJsonString();

}

}

JSONBuilder測試類,Test2.java:

package test1;

import org.sl.json.JSONBuilder;

public class Test2 {

public static void main(String[] args){

t7();

//t1();

}

static void t7(){

String str = "{\"count\":\"3\",\"id[2]\":\"id_2\"}";

JSONBuilder js = new JSONBuilder();

js.parseJsonString(str);

System.out.println(js.getValue("id[1]"));

}

static void t6(){

JSONBuilder js = new JSONBuilder();

js.put("abc\"sasas","sasjajsas\"saas");

System.out.println(js.toJsonString());

}

static void t5(){

String str = "{\"count\":\"3\",\"id[2]\":\"id_2\"}";

JSONBuilder js = new JSONBuilder();

js.parseJsonString(str);

System.out.println(js.getValue("count"));

System.out.println(js.getValue("id[0]"));

}

static void t4(){

String str = "'{\"count\":\"3\",\"id[2]\":\"id_2\"}'";

JSONBuilder js = new JSONBuilder();

js.parseJsonString(str);

System.out.println(js.getValue("count"));

}

static void t3(){

String str = "'{\"count\":\"3\",\"id[2]\":\"id_2\"}'";

String[] ss = str.split("\",\"");

for(String s: ss){

System.out.println(s);

}

}

static void t2(){

JSONBuilder js = new JSONBuilder();

String str = "'{\"count\":\"3\",\"id[2]\":\"id_2\"}'";

str = str.trim();

str = str.substring(3);

str = str.substring(0,str.length()-3);

System.out.println(str);

System.out.println();

String[] tmp = null;

String[] ss = str.split("\",\"");

for(String s: ss){

tmp = s.split("\":\"");

js.put(tmp[0],tmp[1]);

}

System.out.println(js.getValue("count"));

}

static public void t1(){

JSONBuilder js = new JSONBuilder();

int c = 3;

js.put("count",c+"");

for(int i=0; i

js.put("id["+ i +"]","id_"+i);

}

System.out.println(js.toJsonString());

}

}

總結

以上是編程之家為你收集整理的zTree異步加載簡單demo全部內容,希望文章能夠幫你解決zTree異步加載簡單demo所遇到的程序開發問題。

如果覺得編程之家網站內容還不錯,歡迎將編程之家網站推薦給程序員好友。

本圖文內容來源于網友網絡收集整理提供,作為學習參考使用,版權屬于原作者。

總結

以上是生活随笔為你收集整理的php ztree异步加载数据格式,zTree异步加载简单demo的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。