我尝试使用extjs日历的ajax请求。唯一的问题是在创建新记录时。如何将eventId发送回表单。我想在收到新记录后测试更新记录。当我尝试更新它时,发回自动增量内部记录而不是返回ajax响应eventId。 我做了什么。
'eventadd': {
fn: function (win, rec) {
win.hide();
rec.data.IsNew = false;
rec.data.eventId = 'testing'; // tengok boleh tak bypass
this.eventStore.add(rec);
this.showMsg('Event ' + rec.data.Title + ' was added');
var data;
reminder = function (data) {
var remind;
if (!data) {
remind = null;
} else {
remind = data;
}
return remind;
};
Ext.Ajax.request({
url: '../controller/eventController.php',
params: {
method: 'create',
calendarId: rec.data.CalendarId,
eventTitle: rec.data.Title,
eventStart: rec.data.StartDate,
eventEnd: rec.data.EndDate,
eventIsAllDay: rec.data.IsAllDay,
eventReminder: rec.data.Reminder,
eventIsNew: rec.data.IsNew,
leafId: leafId
},
success: function (response, options) {
var jsonResponse = Ext.decode(response.responseText);
if (jsonResponse.success == true) {
title = systemLabel;
} else {
title = systemErrorLabel;
}
Ext.MessageBox.alert(title, jsonResponse.message);
},
failure: function (response, options) {
// critical bug extjs
var jsonResponse = Ext.decode(response.responseText);
Ext.MessageBox.alert(systemErrorLabel, jsonResponse.message);
}
});
},
scope: this
},
响应输出。
{"success":true,"message":"Record Created","data":{"eventId":13},"eventId":13}
更新记录时,我唯一的问题是eventId。 FireBug控制台参数
calendarId 1
eventEnd 2011-08-11T01:00:00
eventId 10000
eventIsAllDay false
eventIsNew false
eventReminder
eventStart 2011-08-11T00:00:00
eventTitle oh update4d
leafId 516
method update
答案 0 :(得分:0)
在创建时,事件窗口仅向新记录添加自动递增的ID,以便在将其发送到服务器之前在本地数据存储中具有唯一的ID。在使用真实数据库PK替换id之后,服务器代码负责生成响应。然后,任何后续的CRUD操作都将使用正确的ID。