Добрый день. У меня есть тревожная ошибка, с которой я недавно столкнулся, и я не знаю, откуда она появилась и как появилась.
У меня есть форма, где я хочу сохранить данные в базу данных при нажатии кнопки, которая обрабатывается контроллером. Вот что я делаю в моем контроллере:
var personStore = Ext.getStore('personBaseDetails');
var caStore = Ext.getStore('creditApplication');
var form = button.up('form').getForm();
var userId = personStore.first().get('ID');
//use this to update
if(caStore.count() < 1){
var creditApplication = Ext.ModelManager.create({
}, 'appName.model.creditApplicationModel');
caStore.add(creditApplication);
}
var record = caStore.first();
form.updateRecord(record);
console.log("user id to be edited is = " + userId);
console.log("caStore count = " + caStore.getCount());
caStore.getProxy().extraParams = {
selectedUserID: userId
};
// caStore.load();
caStore.sync({
success: function(batch) {
console.log(batch.operations[0].request.scope.reader.jsonData['message']);
},
failure: function(batch) {
console.log(batch.operations[0].request.scope.reader.jsonData['message']);
}
});
Здесь я установил дополнительный параметр store, чтобы использовать его в запросе php-кода. Тем не менее, проблема у меня заключается в том, что, когда я получаю selectedUserID
в коде PHP, который я имею, я не мог получить дополнительный параметр. Если бы я закомментировал if(isset($_GET['selectedUserID'])){ .... }
запрос работает (хотя значения жестко закодированы на данный момент).
Вот как выглядит мой магазин:
Ext.define('app.store.creditApplication', {
extend: 'Ext.data.Store',
requires: [
'app.model.creditApplicationModel',
'Ext.data.proxy.Ajax',
'Ext.data.reader.Json',
'Ext.data.writer.Json'
],
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
autoLoad: false,
model: 'app.model.creditApplicationModel',
storeId: 'creditApplication',
clearOnPageLoad: false,
proxy: {
type: 'ajax',
api: {
create: 'data/person/creditApplication/createCreditApplication.php',
read: 'data/person/creditApplication/readCreditApplication.php',
update: 'data/person/creditApplication/updateCreditApplication.php'
},
url: '',
reader: {
type: 'json',
root: 'data'
},
writer: {
type: 'json',
encode: true,
root: 'data'
}
}
}, cfg)]);
}
});
Теперь я ошеломлен, так как у меня есть другой код, который похож на то, что я установил extraParam в контроллере, и код php смог получить и прочитать его просто отлично. Обратите внимание, что в обоих моих магазинах нет extraParam
имущество.
Я застрял с этой проблемой, и я не знаю, как ее решить. Любая помощь будет принята с благодарностью.
Магазин не имеет extraParam (s), прокси-сервер. Вы можете установить его с помощью:
store.getProxy ().setExtraParam (имя, значение)
Других решений пока нет …