Documentation v1.0.6

Preview Upgrade to Pro
jsTree is jquery plugin, that provides interactive trees. For more info please visit the plugin's Home or Github Repo.

Ajax Data

Here's a jsTree example with a server side data via AJAX. For more info, please visit the official website.
Note! The tree nodes are loaded from server side demo script via ajax.
$("#kt_docs_jstree_ajax").jstree({
    "core": {
        "themes": {
            "responsive": false
        },
        // so that create works
        "check_callback": true,
        'data': {
            'url': function(node) {
                return 'https://preview.keenthemes.com/api/jstree/ajax_data.php'; // Demo API endpoint -- Replace this URL with your set endpoint
            },
            'data': function(node) {
                return {
                    'parent': node.id
                };
            }
        }
    },
    "types": {
        "default": {
            "icon": "fa fa-folder text-primary"
        },
        "file": {
            "icon": "fa fa-file  text-primary"
        }
    },
    "state": {
        "key": "demo3"
    },
    "plugins": ["dnd", "state", "types"]
});
<div id="kt_docs_jstree_ajax"></div>
<?php
$parent = $_REQUEST["parent"];

$data = array();

$states = array(
  	"success",
  	"info",
  	"danger",
  	"warning"
);

if ($parent == "#") {
	for($i = 1; $i < rand(4, 7); $i++) {
		$data[] = array(
			"id" => "node_" . time() . rand(1, 100000),  
			"text" => "Node #" . $i, 
			"icon" => "fa fa-folder icon-lg kt-font-" . ($states[rand(0, 3)]),
			"children" => true, 
			"type" => "root"
		);
	}
} else {
	if (rand(1, 5) === 3) {
		$data[] = array(
			"id" => "node_" . time() . rand(1, 100000), 
			"icon" => "fa fa-file fa-large kt-font-default",
			"text" => "No children ",
			"state" => array("disabled" => true),
			"children" => false
		);
	} else {
		for($i = 1; $i < rand(2, 4); $i++) {
			$data[] = array(
				"id" => "node_" . time() . rand(1, 100000), 
				"icon" => ( rand(0, 3) == 2 ? "fa fa-file icon-lg" : "fa fa-folder icon-lg")." kt-font-" . ($states[rand(0, 3)]),
				"text" => "Node " . time(), 
				"children" => ( rand(0, 3) == 2 ? false : true)
			);
		}
	}
}

header('Content-type: text/json');
header('Content-type: application/json');
header('Access-Control-Allow-Origin: *');
echo json_encode($data);
?>
Upgrade To Pro
Pro Version Benefits Free Pro
UI Elements 20 100
In-house Components 20 40
Crafted Pages 5 20
Complete Documentation
Product Support
Layout Builder
Source Vectors
Email Templates
Calendar App
User Management App
Chat App
Customers App
Upgrade to Jet HTML Free
Learn & Get Inspired

Support at devs.keenthemes.com

Join our developers community to find answer to your question and help others. FAQs
Get Support
Documentation
From guides and how-tos, to live demos and code examples to get started right away.
Plugins & Components
Check out our 300+ in-house components and customized 3rd-party plugins.
Layout Builder
Build your layout, preview it and export the HTML for server side integration.
What's New
Latest features and improvements added with our users feedback in mind.
Buy now