load failed - arguments: [Objet api = Objet, Object request = Objet lecteur = Objet scope = Objet, Objet tId = 0 status = 200 statusText = OK , SyntaxError: missing} après la liste de propriétés message = missing} after property list]ExtJS: manquant} après la liste de propriétés mais je ne vois aucune erreur de code
J'ai eu cette erreur en ajoutant une exception à mon magasin mais je ne vois pas de vraie erreur dans mon code ... peut-être un autre ensemble d'yeux aidera.
php:
case 'messages':
if(isset($_SESSION['id'])){
$stmt = $dbh->prepare("Select ID, ReceivedAt, Message from SystemEvents Limit 100");
$stmt->execute();
while($tmp = $stmt->fetch()){
$y .= '{"ID":"'.$tmp['ID'].'","ReceivedAt":"'.$tmp['ReceivedAt'].'","Message":"'.$tmp['Message'].'"},';
}
$y = trim($y,',');
if(isset($_REQUEST['callback'])){
echo $_REQUEST['callback'].'({"dates":['.$y.']});';
}else{
echo '{"dates":['.$y.']}';
}
}else{
if(isset($_REQUEST['callback'])){
echo $_REQUEST['callback'].'({success: false, data{"error_title": "Error", "errormsg": "Cannot display dates"}})';
}
else{
echo '{success: false, data{"error_title": "Error", "errormsg": "Cannot display dates"}}';
}
}
break;
extjs:
Ext.onReady (function() {
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 dateStore = new Ext.data.JsonStore({
autoLoad: true,
url: 'inc/interface/config.php?list=date_options',
root: 'dates',
idProperty: 'ID',
fields: ['ID', 'ReceivedAt'],
listeners: {
loadexception: function() {
console.log('load failed -- arguments: %o', arguments);
}
}
});
var dateSelect = new Ext.form.DateField({
fieldLabel: 'Pick a date',
width: 190,
align: 'center',
frame: true
});
var dateCombo = new Ext.form.ComboBox({
store: dateStore,
mode: 'local',
valueField: 'ID',
displayField: 'ReceivedAt',
editable: false,
emptyText: 'Select a Date',
width: 250,
listeners:{
activate: function(){
dateStore.reload();
}
}
});
var searchField = new Ext.form.TextField({
fieldLabel: 'Search Criteria',
emptyText: 'Search....',
width: 190,
frame: true
});
var searchButton = new Ext.Button({
text: 'Search',
});
var clearButton = new Ext.Button({
text: 'Clear',
tooltip: 'Clears all your search data'
});
var searchPanel = new Ext.Panel({
layout: 'form',
region: 'east',
width: 300,
collapsible: true,
alignButton: 'right',
title: "Search Panel",
items: [dateSelect, dateCombo, searchField],
buttons: [clearButton, searchButton]
});
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
}]
}),
});
var mainViewport = new Ext.Viewport({
layout: 'border',
items: [logGrid, searchPanel]
});
});
Je ne pense pas que publier le reste de mon php serait pertinent puisque tout fonctionne mais j'espère que quelqu'un peut repérer quelque chose que mes mauvais yeux ne peuvent pas.
Ce qui est étrange est que je peux le: "message": " '[message'].' $ Tmp." dans le PHP, et la grille affiche les dates très bien. Je vais devoir vérifier ce json_encode. – TBell
Eh bien, le 'Message' pourrait contenir un guillemet ou un autre caractère spécial dans les littéraux de chaîne JSON/JavaScript. Avoir échoué à échapper des personnages pour leur contexte est une grande source de failles de sécurité, c'est pourquoi vous voulez utiliser 'json_encode' pour créer votre sortie et certainement pas de ficelage. – bobince
Est-ce que quelque chose ci-dessous serait considéré comme un personnage spécial? C'est juste votre journal de base dhcp. J'ai réussi à faire tomber le problème à quelque chose qui n'est pas correctement analysé ici, parce que mon code fonctionne et peut stocker tout le reste à sa place ... sauf cette partie "Message". Dhcpd: DHCPACK le 10.193.XX à 00: 21: xx: 53: xx: e1 (xxxxxx-PC) via 10.193.xx.xx Avr 9 00:00:02 dhcpd: Ajout d'une nouvelle carte vers l'avant de xx.wifi-uhs.xx à 10.193.xx.xx Avr 9 00:00:02 dhcpd: ajout de la carte inversée à partir de 242.244.xx.xx.in-addr.arpa. à xx.wifi-uhs.xx – TBell