Магазин extjs4, устанавливающий extraParam, динамически не работает

Добрый день. У меня есть тревожная ошибка, с которой я недавно столкнулся, и я не знаю, откуда она появилась и как появилась.

У меня есть форма, где я хочу сохранить данные в базу данных при нажатии кнопки, которая обрабатывается контроллером. Вот что я делаю в моем контроллере:

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 имущество.

Я застрял с этой проблемой, и я не знаю, как ее решить. Любая помощь будет принята с благодарностью.

0

Решение

Магазин не имеет extraParam (s), прокси-сервер. Вы можете установить его с помощью:

store.getProxy ().setExtraParam (имя, значение)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]