我一直在尝试使用以下代码从数据库中检索日期值和整数值:
var l_alsChampsMois, l_stoDonneesMois;
try {
l_alsChampsMois = [
{name: "date_mois", type: "date", dateFormat: "Y-m-d"},
{name: "indice", type: "integer"}
];
l_stoDonneesMois = new Ext.data.JsonStore({
fields: l_alsChampsMois,
autoLoad: false,
proxy: {
type: "ajax",
url: "/commun/req_sql/req_ind_per_mois.php",
reader: {
type: "json",
root: "rows"
},
// some configs to use jsFiddle echo service (you will remove them)
actionMethods: {
read: "POST"
},
extraParams: {
key:"test"
}
},
listeners: {
load: function(objStore, alsLignes, blnOk, objOptions) {
window.alert("Mois fin : " + objStore.getAt(0).get("date_mois"));
}
}
});
l_stoDonneesMois.load({params: {
p_idsoc: l_strIdSociete,
p_mois: l_datDebut.getMonth() + 1,
// getMonth renvoie 0 pour janvier, etc.
p_annee: l_datDebut.getFullYear(),
p_debut: 1,
p_etape: 1
}
});
其中 l_strIdSociete 和 l_datDebut 是先前分配的变量,而 /commun/req_sql/req_ind_per_mois.php 是检索数据并将其转换为 JSON 的 PHP 页面。
它似乎工作正常(实际上,Firebug 告诉我负载确实检索了包含我期望它们的值的“date_mois”和“indice”的数据结构),只有 window.alert 返回未定义。如果我用“indice”替换“date_mois”,它会返回“indice”的预期值。
我尝试使用 objStore.getAt(0).getData()["date_mois"],但无济于事。
我对此的唯一线索是Firebug显示的数据结构中的“date_mois”是一个对象,但即便如此它也不应该是未定义的,现在应该吗?我查了http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.Field-cfg-type并没有直接给出答案。
那么我在那里做错了什么?