onAddTap: function(button, e, eOpts) {
Ext.Ajax.request({
url: "http://localhost:96/OrderApplication/order.php?action=postproduct",
method :"post",
params: {
name :Name
}
});
var store = Ext.getStore("myProfiles");
store.load();
console.log(store.getCount());
}
我有这个tap事件调用和Ajax请求并将数据插入数据库表。 我有一个商店' myProfiles'从表中获取数据。 但是商店里的数据总是落后一个记录。
例如,第一次将log计数为0,而商店应加载1条记录。在第二次点击时,它将获得计数1,同时在数据库表中有2条记录。我知道我可能做错了,因为我是sencha建筑师和开发人员的新手。主要的是我想在同一个tap事件中插入数据并更新商店。
答案 0 :(得分:1)
问题在于时机。这就是:
有两种方法可以实现一致的行为:
首先。根据您当前的代码,在完成更新ajax调用后触发存储加载。
var store = Ext.getStore("myProfiles");
Ext.Ajax.request({
url: "http://localhost:96/OrderApplication/order.php?action=postproduct",
method :"post",
params: {
name : Name
},
succes : function(){
store.load()
console.log(store.getCount())
}
});
}
第二种方法是:
这样您就不需要自己发出ajax调用了。 ExtJs正在照顾它。您只需要在服务器端处理创建请求。
我会推荐你后者。它允许您为所有表格提供一致的后端API。当您的应用程序和表的数量增长时,这一点尤为重要。