我试图用数据库连接ExtJs到PHP,我很难向gridpanel显示数据

时间:2014-08-04 07:50:21

标签: extjs extjs-mvc extjs5

我试图将ExtJs连接到带有数据库的PHP,并且我无法向gridpanel显示数据,我有点混淆为什么没有数据显示在gridpanel中,并且firebug中没有错误。 ..任何人都可以检查并纠正我或教授如何用PHP创建一个简单的gridpanel。即时通讯使用Extjs 5

期待您的回复谢谢guyz

//应用程序/商店/

Ext.define('TestPhp.store.Employee', {
      extend: 'Ext.data.JsonStore',
      alias: 'store.employees',
      model: 'TestPhp.model.Employ',
    proxy: {
        type: 'ajax',
        url: 'test.php',
        reader: {
            type: 'json',
            rootPropety: 'data'
        }
    },   });

//应用程序/模型/

Ext.define('TestPhp.model.Employ', {
     extend: 'Ext.data.Model',
    fields: ['name','bounty','power'],    
});

//应用程序/视图/主/

 Ext.define('TestPhp.view.main.Grid', {
    extend: 'Ext.Panel',
    xtype: 'gridp',

require:['TestPhp.store.Employee'],

    store: 'Employee',
 items:[{
            style: 'padding-top: 10px;',
            xtype: 'grid',
            style: 'margin-top:5px;margin-left:10px;',
            columns : [

                {
                text     : 'Name',
                width    : '40%',
                sortable : false,
                dataIndex: 'name'
            },
            {
                text     : 'Bounty',
                width    : '30%',
                sortable : true,
                dataIndex: 'bounty'
            },
            {
                text     : 'Power',
                width    : '30%',
                sortable : true,
                dataIndex: 'power'
            }

            ],

            width: '100%'
        }],
  });

//我的php文件

<?php

 mysql_connect("localhost", "root", "") or
  die("Could not connect: " . mysql_error());
  mysql_select_db("test_db");

$query= "SELECT * FROM pirate";
$result= mysql_query($query);

    $return_arr= array();

    while($rows = mysql_fetch_array($result, MYSQL_ASSOC)){
            // $row_array['id']=$rows['id'];
            $row_array['name']=$rows['name'];
            $row_array['bounty']=$rows['bounty'];
            $row_array['power']=$rows['power'];

            array_push($return_arr, $row_array);
}

$ans = array('success' => true, );
$ans['data'] = $return_arr;
header('Content-Type: application/json');
print json_encode($ans);
exit;

?>

这是php文件的输出.....

{&#34;成功&#34;:真,&#34;数据&#34;:[{&#34;名称&#34;:&#34;路飞&#34;&#34;恩惠&# 34;:&#34; 400000000&#34;,&#34; power&#34;:&#34;口香糖没有mi和haki&#34;},{&#34; name&#34;:&#34; zorro&#34;,&#34; bounty&#34;:&#34; 300000000&#34;,&#34; power&#34;:&#34; 3剑风格和haki&#34;},{&#34 ;姓名&#34;:&#34; sanji&#34;,&#34; bounty&#34;:&#34; 100000000&#34;,&#34; power&#34;:&#34;黑脚风格和HAKI&#34;},{&#34;名称&#34;:&#34;埃斯&#34;&#34;恩惠&#34;:&#34; 4亿&#34;&#34;功率&#34 ;:&#34; flare flare no mi and haki&#34;},{&#34; name&#34;:&#34; sabo&#34;,&#34; bounty&#34;:&#34; 40000000000& #34;&#34;功率&#34;:&#34;未知&#34;},{&#34;名称&#34;:&#34;瑞利&#34;&#34;恩惠&#34; :&#34;未知&#34;&#34;功率&#34;:&#34;未知&#34;}]}

1 个答案:

答案 0 :(得分:1)

Evan用代码回答:替换

extend: 'Ext.Panel',

通过

extend: 'Ext.grid.Panel',

然后,在创建网格之前,将autoLoad:true添加到商店或加载商店。根据您的使用情况调整此代码:

this.getStore('Employee').load()
Ext.widget('gridp')