我正在使用EXT JS来创建一个简单的树,它将显示一个目录及其内容。无论出于何种原因,我已经完成了他们所有的例子,我无法复制我想要的东西。我想根据目录结构创建一个JSON对象,以便将它输入EXT JS Tree。
这是我打开目录的脚本,创建父节点然后尝试创建子节点。在这个目录里面只是.xml文件。我已经开始使用它打开目录,只是为文件创建节点,但它没有显示父级或根级别,并且失去了漂亮的折叠效果。
这是我的代码:
if($handler = opendir($dir."/$market_desc"))
{
while (($sub = readdir($handler)) !== FALSE)
{
if ($sub !== "." && $sub !== ".." && $sub !== ".svn")
{
if(is_file($dir."/$market_desc/".$sub))
{
$subDir[] = array(
'text' => $sub,
'id' => $sub,
'checked' => false,
'leaf' => true,
'cls' => 'file'
);
}
}
}
$listDir[] = array(
'text' => $market_desc,
'id' => $market_desc,
'checked' => false,
'cls' => 'folder',
'children' => array($subDir)
);
closedir($handler);
unset($handler);
目录结构只有1级深度,一些文件位于根级别,后面跟着一些目录,这些目录也包含文件但从不会超过1级。
我是一名php后端开发人员,所以我为我的noobness道歉,当谈到javascript和EXT所需的正确形成这个JSON时
答案 0 :(得分:0)
经过一些试验和错误后,我以正确的格式为EXT JS提供了这个PHP脚本。它将打开目录并构建嵌套数组,该数组可以是json_encoded并发送到EXT JS Tree进行渲染
// Get market specific features and make nodes
if($handler = opendir($dir."/$market_desc"))
{
while (($sub = readdir($handler)) !== FALSE)
{
if ($sub !== "." && $sub !== ".." && $sub !== ".svn")
{
if(is_file($dir."/$market_desc/".$sub))
{
$subDir[] = array(
'text' => $sub,
'id' => $sub,
'checked' => false,
'leaf' => true,
'parent' => $market_desc,
'children' => NULL,
'cls' => 'file'
);
}
}
}
$listDir[] = array(
'text' => $market_desc,
'id' => $market_desc,
'checked' => false,
'cls' => 'folder',
'parent' => NULL,
'expanded' => true,
'children' => $subDir
);
closedir($handler);
unset($handler);
}