2010-07-19 4 views
0

J'ai eu ce problème pendant un certain temps maintenant, mais je continue à réduire le problème et je pense que j'ai le problème principal trouvé maintenant. Alors que mon JSONstore appelle correctement le PHP, et que firebug me renvoie correctement les données de la base de données, il ne s'affichera pas dans ma grille.JSONstore ne pas retourner les données correctement

J'ai une grille avec seulement 2 colonnes par date, et une entrée d'un journal. Lorsque je supprime l'entrée du journal, la grille affiche la date correctement et lorsque je crée un tableau contenant des données statiques du journal, il s'affiche également correctement dans la grille. Je pense que mon magasin JSON n'analyse pas correctement les données des tables mysql.

Mon code est:

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 
      }] 
     }) 
    }); 

Un exemple de l'entrée du journal, il est de traction est:

| 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 | 

Il y a plusieurs personnages différents onglets et entre la date, DH1, et l'entrée du journal lui-même . Peut-il y avoir un problème avec l'évasion de ces personnages? Je ne suis pas tout à fait sûr de comment c'est fait. Toute aide serait appréciée.

Répondre

0

Vous n'avez pas spécifié le type et le format dans les champs. Et je devine que votre implémentation php json ne génère pas d'objet javascript Date.

... Alors essayez de retourner un horodatage unix et l'utiliser comme champs:

fields: [ 
    {name: 'ID', type: 'int'}, 
    {name: 'ReceivedAt', type: 'date', dateFormat: 'Y-m-d H:i:s'}, 
    'Message' 
] 

vous pourriez éventuellement également spécifier un dateFormat à côté du type: 'date'. Voir la documentation pour plus d'informations: http://www.sencha.com/deploy/dev/docs/?class=Ext.data.Field

+0

Je viens de regarder en arrière et j'ai vu que j'ai posté le mauvais magasin. Aussi le RecievedAt est séparé du message qui est les détails mentionnés à la fin de mon message. Désolé à ce sujet, totalement ma faute. – TBell

+0

Pouvez-vous donner un exemple des données json que 'inc/interface/config.php? List = messages' renvoie? Ou sont les lignes que vous avez posté au-dessus de ce que le fichier renvoie? Si c'est le cas, ce n'est pas json et cela ne fonctionnera pas avec le 'JsonStore'. – Wolph

+0

Je l'ai posté ci-dessous, si vous avez une idée sur la façon dont je pourrais résoudre ce problème, peut-être en échappant aux caractères spéciaux (?), S'il vous plaît faites le moi savoir. – TBell

0
 
{"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"}]} 

En fait, je trouve le problème et ce ne est pas mon code. J'ai limité mon PHP à seulement 19 enregistrements et ça marche, c'est sur ce 20ème enregistrement que j'obtiens un type de log différent qui gâche ma grille et rien ne s'affiche. Je pense que cela a à voir avec les caractères spéciaux dans le journal.

De toute façon, c'est une erreur avec Rsyslog, qui est ce que j'utilise pour les vider dans mysql. Je ne sais pas exactement comment je pourrais le réparer via php/extjs.

Questions connexes