0

我的数据显示在控制台中,但不显示在 ExtJs 树中?

我的.php文件

    $data = array();

    $sql = "";

    if (!isset($_POST['node'])) {
        // first select the top node that have no parent
        $sql = "SELECT id_no,value_data FROM extjs_tree WHERE parent IS NULL";
    } else {
        // select data with parent_id = $_POST['node']
        $sql = "SELECT id_no, value_data FROM extjs_tree WHERE parent = '". $_POST['node'] ."'";                                            
    }   

    $q = mysql_query($sql);

    while ($r = mysql_fetch_array($q)) {
        // check if have a child node                           
        $qq = mysql_query("SELECT id_no, value_data FROM extjs_tree WHERE parent = '". $r['id'] ."'");

        if (mysql_num_rows($qq) > 0) {
            // if have a child
            $r['leaf'] = false;
            $r['cls'] = 'folder';
        } else {
            // if have no child
            $r['leaf'] = true;
            $r['cls'] = 'file';
        }
        $data[] = $r;

    }               


    echo json_encode($data);

我的 JS 文件

Ext.require([
    'Ext.tree.*',
    'Ext.data.*',
    'Ext.tip.*'
]);

Ext.onReady(function() {
    Ext.QuickTips.init();

    var store = Ext.create('Ext.data.TreeStore', {
        proxy: {
            type:'ajax',
            actionMethods:'post',
            url:'get-nodes.php'


        },
        root: {
            text: 'Root Node',
            id: 'root_node',
            expanded: true
        },
        folderSort: true,
        sorters: [{
            property:'text',
            direction:'ASC'
        }]
    });

    var tree = Ext.create('Ext.tree.Panel', {
        store: store,
        renderTo: 'tree_el',
        height: 300,
        width: 250,
        title: 'Products Display'
    });
});

我得到了正确的树,我可以在控制台中看到数据。但我看不到 ExtJs 显示值??

我现在的结果

在此处输入图像描述

我的预期结果应该是

在此处输入图像描述

4

2 回答 2

2

在您的情况下,您还可以将以下字段添加到您的商店:

{
  name: 'text',
  mapping: 'value'
}
于 2012-11-23T12:26:48.740 回答
0

每个响应项都必须包含text字段。正如我从您的请求响应图像中看到的那样,您没有发送text字段。响应应如下所示:

[{
    "id": 2,
    "text": "Fruits", // this field is required
    ...
},
    ...
]
于 2012-11-23T12:20:13.090 回答