Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用json填充Extjs图形不起作用_Php_Json_Extjs_Graph_Store - Fatal编程技术网

Php 使用json填充Extjs图形不起作用

Php 使用json填充Extjs图形不起作用,php,json,extjs,graph,store,Php,Json,Extjs,Graph,Store,所以我要做的是填充一个Extjs线图。我创建了一个JSON存储,它从远程页面提取JSON,由于某种原因,我的图形没有被填充 这是我的分机码: Ext.onReady(function(){ var store = new Ext.data.JsonStore({ autoDestroy: true, url: 'http://myURL.com', storeId: 'graphStore', root: 'rows', idProperty: 'dat

所以我要做的是填充一个Extjs线图。我创建了一个JSON存储,它从远程页面提取JSON,由于某种原因,我的图形没有被填充

这是我的分机码:

Ext.onReady(function(){

var store = new Ext.data.JsonStore({
    autoDestroy: true,
    url: 'http://myURL.com',
    storeId: 'graphStore',
    root: 'rows',
    idProperty: 'date',
    fields: ['date', 'posts']
});

new Ext.Panel({
    title: 'Posts',
    renderTo: 'test_graph',
    width:500,
    height:300,
    layout:'fit',

    items: {
        xtype: 'linechart',
        store: store,
        xField: 'date',
        yField: 'posts',
        listeners: {
            itemclick: function(o){
                var rec = store.getAt(o.index);
                Ext.example.msg('Item Selected', 'You chose {0}.', rec.get('date'));
            }
        }
    }
});    
}))

下面是应该填充它的JSON:

{"rows":[
    {"date":"2010-06-11","posts":4},
    {"date":"2010-06-12","posts":3},
    {"date":"2010-06-13","posts":1}, 
    {"date":"2010-06-14","posts":2}
]}

我一辈子都搞不懂为什么这行不通。图形轴显示,但线条不呈现。

您可能希望在存储上将“自动加载”属性设置为true,例如:

var logsRemoteJsonStore = new Ext.data.JsonStore
({
    proxy: logsRemoteProxy
  , storeId: 'ourRemoteStore'
  , autoLoad: true
  , fields: logsRecordFields

});
事实上,我们已经验证了下面的代码是否有效,因此几乎可以肯定它是autoload参数,但请查看下面示例中的其他参数

Ext.onReady(function () {
    var store = new Ext.data.JsonStore({
        baseParams: {
            symbol: 'GOOG'
        },
        autoLoad: true,
        url: '/CMSAdmin/ReadSiteStatisticsEightMonthSummary/',
        root: 'data',
        fields: ['date', 'close']
    });

    new Ext.Window({
        title: 'GOOG',
        width: 400,
        height: 300,
        items: new Ext.chart.LineChart({
            store: store,
            xField: 'date',
            yField: 'close'
        })
    }).show();

});
json:


我也有同样的问题,即使
store.autoLoad
设置为true

实际上,当我将json结果硬编码到页面中时,一切都很顺利。但当我试图使用ajax从数据库中提取它时,这条线从未呈现过!从数据库中读取也不是问题。我确认它肯定是从数据库中提取的


我通过将
autoLoad
设置为false并在实际图表呈现后添加
store.load()
,解决了这个问题,效果非常好。

Hi,我面临着同样的问题。你找到解决办法了吗?感谢你+1的个人故事和你自己的修复。感谢您抽出时间写下答案!
{
  "symbol": "GOOG",
  "start": 1279627043,
  "span": 32140800,
  "data": [{
    "close": 462,
    "date": "2010-08-20"
  }, {
    "close": 476,
    "date": "2010-09-09"
  }, {
    "close": 527,
    "date": "2010-09-28"
  }, {
    "close": 601,
    "date": "2010-10-15"
  }, {
    "close": 620,
    "date": "2010-11-03"
  }, {
    "close": 591,
    "date": "2010-11-22"
  }, {
    "close": 592,
    "date": "2010-12-10"
  }, {
    "close": 598,
    "date": "2010-12-30"
  }, {
    "close": 631,
    "date": "2011-01-19"
  }]
}