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 に答える