将JSON数组从PHP传递给Dynatree

时间:2012-03-25 04:35:53

标签: php javascript jquery json dynatree

我第一次使用Dynatree并编写了一个返回格式正确的JSON数组的PHP脚本。

我已阅读过Dynatree documentation,但无法弄清楚如何从我的PHP脚本传入JSON数组,因此可以将其内容作为树结构加载。

在我的HTML文件的顶部,我使用<?php include('tree.php') ?>自动返回格式化的JSON数组(名为$categories)。我也可以通过JavaScript调用函数来检索树,如果这样可以更容易。

有人可以告诉我如何将我的数组传递给Dynatree吗?

2 个答案:

答案 0 :(得分:3)

您可以使用data-属性,如下所示:

<?php
$dynaConfig = array('children'=>array(
    array('title' => 'Alice'), 
    array('title' => 'Bob')
));
$dynaConfigJSON = json_encode($dynaConfig);

// HTML head goes here
echo '<div id="tree" data-dyna="' . htmlspecialchars($dynaConfigJSON) . '">';
?>

<script>
$(function() {
   var dtConfig = $.parseJSON($('#tree').attr('data-dyna'));
   $('#tree').dynatree(dtConfig);
});

Here's a live example,以及相应的full source code

答案 1 :(得分:2)

你也可以在像tree.php这样的文件中分离php的代码,然后在javascript中调用它。

<div id="tree">  </div>
<script type="text/javascript">
  $(function(){
    $("#tree").dynatree({
      initAjax: {
        url: "tree.php"
        }
      }
    }
</script>