Php JSONstore未正确返回数据

Php JSONstore未正确返回数据,php,json,extjs,grid,Php,Json,Extjs,Grid,我有这个问题已经有一段时间了,但我一直在缩小问题的范围,我想我现在已经解决了主要问题。虽然我的JSONstore正确地调用了PHP,firebug确实从数据库返回了正确的数据,但它不会显示在我的网格中 我有一个网格,一个日期只有两列,一个日志条目。当我取出日志条目时,网格将显示日期,当我从日志中创建一个包含静态数据的数组时,它也将在网格中显示。我认为我的JSONstore没有正确解析mysql表中的数据 我的代码是: var logStore = new Ext.data.JsonStore

我有这个问题已经有一段时间了,但我一直在缩小问题的范围,我想我现在已经解决了主要问题。虽然我的JSONstore正确地调用了PHP,firebug确实从数据库返回了正确的数据,但它不会显示在我的网格中

我有一个网格,一个日期只有两列,一个日志条目。当我取出日志条目时,网格将显示日期,当我从日志中创建一个包含静态数据的数组时,它也将在网格中显示。我认为我的JSONstore没有正确解析mysql表中的数据

我的代码是:

  var logStore = new Ext.data.JsonStore({
    autoLoad: true,
    url: 'inc/interface/config.php?list=messages',
    root: 'dates',
    idProperty: 'ID',
    fields: ['ID', 'ReceivedAt', 'Message'],
    listeners: {
                loadexception: function() {
                    console.log('load failed -- arguments: %o', arguments);
                }
        }
}); 

  var logGrid = new Ext.grid.GridPanel({
        region: 'center',
        store: logStore,
        colModel: new Ext.grid.ColumnModel({
            columns: [{
                id: 'received',
                header: 'Received',
                dataIndex: 'ReceivedAt',
                width: 250
            },{
                id: 'message',
                header: 'Logs',
                dataIndex: 'Message',
                width: 750
            }]
        })
    });
它正在拉取的日志条目的一个示例是:

| Apr 9 00:00:02 dh1 dhcpd: Added new forward map from nfxxxxich-PC.wifi-uhs.osu to 10.xxx.xx.248 |
| Apr 9 00:00:02 dh1 dhcpd: added reverse map from 248.xxxx.xxx.10.in-addr.arpa. to nxxxxxh-PC.wifi-uhs.osu |
| Apr 9 00:00:02 dh1 dhcpd: DHCPREQUEST for 10.xxx.xxx.248 from 00:x:5c:x:8c:xx (nxxxxh-PC) via 10.xxx.xxx.254 |
| Apr 9 00:00:02 dh1 dhcpd: DHCPACK on 10.X.XX.248 to 00:X:5c:X8c:XX (nXXXich-PC) via 10.193.XX.XXX |
| Apr 9 00:00:02 dh1 dhcpd: Added new forward map from XX.wifi-uhs.XXX to 10.X.X.242 |
| Apr 9 00:00:02 dh1 dhcpd: added reverse map from 242.X.193.X.in-addr.arpa. to X.wifi-uhs.XXX |
| Apr 9 00:00:02 dh1 dhcpd: DHCPREQUEST for 10.X.X.242 from 00:X:ce:X21:63 (elena) via 10.X.X.254 |
| Apr 9 00:00:02 dh1 dhcpd: DHCPACK on 10.193.XXX.XX to 00:X:ce:X:21:63 (elena) via 10.X.X.254 |
| Apr 9 00:00:02 dh1 dhcpd: Added new forward map from P305-XXX.wifi-uhs.XXX to 10.193.X.X |
| Apr 9 00:00:02 dh1 dhcpd: added reverse map from 21.241.X.X.in-addr.arpa. to P305-XXXX.wifi-uhs.XXX |

日期dh1和日志条目本身之间有各种不同的字符和选项卡。转义这些字符会有问题吗?我只是不太确定是怎么做到的。任何帮助都将不胜感激

您尚未在字段中指定类型和格式。我猜您的php json实现不会生成javascript
Date
对象

所以。。。尝试返回unix时间戳并将其用作字段:

fields: [
  {name: 'ID', type: 'int'},
  {name: 'ReceivedAt', type: 'date', dateFormat: 'Y-m-d H:i:s'},
  'Message'
]
您还可以选择在
类型:“日期”
旁边指定
dateFormat
。 有关更多信息,请参阅文档:

{“日期”:[{“ID”:“18”,“ReceivedAt”:“2010-07-07 11:37:42”,“消息”:“Apr 9 00:00:03 dh1 dhcpd:添加了从244.xxx.xxx.10.in-addr.arpa.到xxx.wifi uhs.xxx的反向地图”},{“ID”:“19”,“ReceivedAt”:“2010-07-07 11:37:42”,“消息”:“Apr 9 00:00:03 dh1 dhcpd:dhcpd:DHCPREQUEST 10.xxx.244从00:xx:xx:xx:xx:f0:xx:xx:f0:xx:d5:xxx(xxx)通过254x.x.x.x:20,{,“接收数据”:“2010-07-07 11:37:42”,“消息”:“[origin software=“rsyslogd”swVersion=“3.22.1”x-pid=“5222”x-info=”http://www.rsyslog.com“](重新)开始“},{”ID:“21”,“ReceivedAt:“2010-07-07 11:37:42”,“消息”:”警告:rsyslogd正在兼容模式下运行。自动生成的配置指令可能会干扰您的rsyslog.conf设置。我们建议升级您的配置并添加-c3作为第一个rsyslogd选项。{ReceivedAt:“2010-07-07 11:37:42”,“消息”:“警告:没有操作的选择器行将被丢弃”},{“ID”:“24”,“ReceivedAt:“2010-07-07 11:37:42”,“消息”:“配置错误:无法解释主配置文件'/etc/rsyslog.conf'。[重试]http://www.rsyslog.com/e/2123 ]},{“ID”:“25”,“ReceivedAt”:“2010-07-07 11:37:42”,“消息”:警告:向后兼容层添加到rsyslog.conf的以下指令中:ModLoad imuxsock“}]} 事实上,我发现了问题,这不是我的代码。我限制我的PHP只拉19条记录,它可以工作,在第20条记录上,我得到了一个不同类型的日志,它在我的网格上搞砸了,什么也不会显示。我想这与日志中的特殊字符有关


不管怎样,这都是Rsyslog的一个错误,这是我用来将其转储到mysql中的错误。我不确定如何通过php/extjs修复它。

我只是回头看了看,发现我发布了错误的存储区。此外,ReceiveDat与我文章末尾提到的消息是分开的。很抱歉,这完全是我的错。可以吗u给出一个json数据的示例,该json数据
inc/interface/config.php?list=messages
返回?或者您在文件返回的内容上方发布的行是什么?如果是这样,那不是json,它不会与
JsonStore
一起工作。我在下面发布了它,如果您知道如何修复它,也许可以通过转义特殊字符(?),请告诉我。@t贝尔:我已经修改了字段定义。它应该是这样工作的:) {"dates":[{"ID":"18","ReceivedAt":"2010-07-07 11:37:42","Message":"Apr 9 00:00:03 dh1 dhcpd: added reverse map from 244.xxx.xxx.10.in-addr.arpa. to xxx.wifi-uhs.xxx"},{"ID":"19","ReceivedAt":"2010-07-07 11:37:42","Message":"Apr 9 00:00:03 dh1 dhcpd: DHCPREQUEST for 10.xxx.xxx.244 from 00:xx:f0:xx:d5:xxx (xxx) via xx.x.xxx.254"},{"ID":"20","ReceivedAt":"2010-07-07 11:37:42","Message":" [origin software="rsyslogd" swVersion="3.22.1" x-pid="5222" x-info="http://www.rsyslog.com"] (re)start"},{"ID":"21","ReceivedAt":"2010-07-07 11:37:42","Message":"WARNING: rsyslogd is running in compatibility mode. Automatically generated config directives may interfer with your rsyslog.conf settings. We suggest upgrading your config and adding -c3 as the first rsyslogd option."},{"ID":"22","ReceivedAt":"2010-07-07 11:37:42","Message":"the last error occured in /etc/rsyslog.conf, line 38"},{"ID":"23","ReceivedAt":"2010-07-07 11:37:42","Message":"warning: selector line without actions will be discarded"},{"ID":"24","ReceivedAt":"2010-07-07 11:37:42","Message":"CONFIG ERROR: could not interpret master config file '/etc/rsyslog.conf'. [try http://www.rsyslog.com/e/2123 ]"},{"ID":"25","ReceivedAt":"2010-07-07 11:37:42","Message":"Warning: backward compatibility layer added to following directive to rsyslog.conf: ModLoad imuxsock"}]}