0
要做好記錄更新我通常使用一個CRUD和存儲這樣的:在更新ajax請求 - 更新記錄不形
storeId: 'storeId',
model: 'model',
pageSize: 10,
autoLoad: true,
proxy: {
type: 'ajax',
actionMethods: {
create: 'POST',
read: 'POST',
update: 'POST',
destroy: 'POST'
},
api: {
create: 'php/crud.php?action=create',
read: 'php/crud.php?action=read',
update: 'php/crud.php?action=update',
destroy: 'php/crud.php?action=destroy'
},
reader: {
type: 'json',
rootProperty: 'net',
totalProperty: 'total',
successProperty: 'success'
},
writer: {
type: 'json',
writeAllFields: true,
encode: true,
rootProperty: 'net'
}
}
邏輯:
var record = form.getRecord();
record.set(values);
store.sync({
success: function() {
},
failure: function() {
},
callback: function() {
},
});
問題:只需更改數據庫列的值:是/否
我不想使用'destroy'刪除記錄,而是想通過'update'將數據庫表列的形式NO更改爲YES來禁用它。
在這種情況下,我沒有任何形式;只是一個刪除按鈕。
我嘗試沒有成功:
store.proxy.extraParams = {
sub_case: 'change_delete_state',
id_lista: id_lista
},
store.sync({
success: function() {
},
failure: function() {
},
callback: function() {
},
});
和:
Ext.Ajax.request({
url: 'php/crud.php?action=update',
params: {
sub_case: 'change_delete_state',
id_lista: id_lista
},
success: function() {
store.commitChanges();
},
failure: function() {
},
callback: function() {
},
});
我會很感激的建議來解決這個問題。
編輯:
解決這樣的:
api: {
destroy: 'php/crud.php?action=destroy'
},
cliente端邏輯:
// soft delete
store.proxy.extraParams = {
sub_case: 'change_delete_state',
id_lista: id_lista
},
//or
// hard delete
store.proxy.extraParams = {
id_lista: id_lista
},
store.remove(record);
store.sync({...});
服務器端(PHP):
case "destroy":{
$record = stripslashes($_POST['net']);
$data = json_decode($record);
$id_lista = $data->{'id_lista'};
if($_REQUEST['sub_case'] == "change_delete_state"){
$sqlQuery = "UPDATE ...";
(...)
}else{
$sqlQuery = "DELETE ...";
(...)
}
}
感謝亞歷山大的幫助,並指出正確的方向。問題解決了。我編輯了我的帖子。 – josei