PHP Json vs ExtJS remoteJsonStore problem
Jeg har en php fil der generer nedenstående JSON output når den kaldes direkte.Når jeg anvender dette output som input til et ExtJS JSON datastore får jeg følgende fejl:
invalid label
{"emails":[{"id":1,"pid":"6","bnr":"*",
|
/|\
| Firebug viser at fejle er her ved det første gåseøje!
Er der noget galt med formateringen af JSON outputtet? Det formateres med php koden:
$retur['emails'] = $SQLresultat;
echo json_encode($retur);
Hvad kan det ellers være der er galt??
Her er html/js og PHP output.
ajax.php output:
{"emails":[{"id":1,"pid":"6","bnr":"*","sm_server":"10.0.0.2","sm_port":"25","sm_user":"","sm_passw":"","se_from":"test.eu","se_to":"test1.com","se_cc":"test2.com","se_bcc":"test.eu","emailBody":"noget tekst"},{"id":2,"pid":"8","bnr":"*","sm_server":"10.0.0.2","sm_port":"25","sm_user":"","sm_passw":"","se_from":"test.eu","se_to":"test1.com","se_cc":"test2.com","se_bcc":"test.eu","emailBody":"noget andet tekst"}]}
index.html source:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Simpel JSON Test</title>
<link rel="stylesheet" type="text/css" href="extjs-3.4/resources/css/ext-all.css" />
<script type="text/javascript" src="extjs-3.4/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="extjs-3.4/ext-all.js"></script>
</head>
<body>
<script type="text/javascript">
Ext.onReady(function() {
var remoteProxy = new Ext.data.ScriptTagProxy({
url : 'ajax.php'
});
var recordFields = [
{ name : 'id', mapping : 'id'},
{ name : 'firstname', mapping : 'pid'},
{ name : 'bnr', mapping : 'bnr'},
{ name : 'street', mapping : 'sm_server'},
{ name : 'city', mapping : 'sm_port'},
{ name : 'state', mapping : 'sm_user'},
{ name : 'zipcode', mapping : 'sm_passw'},
{ name : 'newRecordId', mapping : 'se_from'},
{ name : 'seto', mapping : 'se_to'},
{ name : 'secc', mapping : 'se_cc'},
{ name : 'sebcc', mapping : 'se_bcc'},
{ name : 'emailbody', mapping : 'emailBody'}
];
var remoteJsonStore = new Ext.data.JsonStore({
proxy : remoteProxy,
storeId : 'ourRemoteStore',
root : 'emails',
autoLoad : false,
remoteSort : true,
fields : recordFields,
idProperty : 'id'
});
var textFieldEditor = new Ext.form.TextField();
var columnModel = [
{
header : 'Last Name',
dataIndex : 'bnr',
sortable : true,
editor : textFieldEditor
},
{
header : 'First Name',
dataIndex : 'firstname',
sortable : true,
editor : textFieldEditor
},
{
header : 'Streed Address',
dataIndex : 'street',
sortable : true,
editor : textFieldEditor
},
{
header : 'City',
dataIndex : 'city',
sortable : true,
editor : textFieldEditor
},
{
header : 'State',
dataIndex : 'state',
sortable : true,
editor : textFieldEditor
},
{
header : 'Zip Code',
dataIndex : 'zipcode',
sortable : true,
editor : textFieldEditor
}
];
var grid = {
xtype : 'editorgrid',
columns : columnModel,
id : 'myEditorGrid',
store : remoteJsonStore,
loadMask : true,
stripeRows : true,
viewConfig : { forceFit : true }
};
new Ext.Window({
height : 350,
width : 550,
border : false,
layout : 'fit',
items : grid
}).show();
remoteJsonStore.load();
});
</script>
</body>
</html>
