Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Передача параметров сценарию обработки стореджа на сервере (https://javascript.ru/forum/extjs/32039-peredacha-parametrov-scenariyu-obrabotki-storedzha-na-servere.html)

Allan Stark 01.10.2012 14:29

Передача параметров сценарию обработки стореджа на сервере
 
Задался проблемой передачи параметров сценарию обработки и отдачи данных для стореджа (через прокси).

Например необходимо передать сценарию php параметры для последующей обработки их в сценарии.

Пока научился только модифицировать свойство url прокси стореджа, с последующей перезагрузкой данных, например:

Ext.getStore('treestore_invoices').proxy.url = 'load_invoices.php?dateFrom=1.01.2012&dateTo=1.02. 2012';

Есть еще ряд параметров компонента стореджа, вызывающих интерес, но по ним мало информации:

remoteFilter
remoteSort
filters

метод load также может принимать некоторые параметры, но они визуально не принимают участия в запросе к серверу.

Как все же правильно передавать в запросе стореджа параметры сценарию на сервере для отбора/фильтрации данных на нем ?

Ex_Soft 01.10.2012 15:03

Цитата:

Сообщение от Allan Stark (Сообщение 207475)
Как все же правильно передавать в запросе стореджа параметры сценарию на сервере для отбора/фильтрации данных на нем ?

Ext.data.Store.filter() + Ext.data.Store.remoteFilter (для условно-постоянных параметров можно еще заюзать Ext.data.proxy.Ajax.extraParams)

Allan Stark 01.10.2012 15:58

А для TreeStore ?
У него метода filter() нету.

Ex_Soft 01.10.2012 17:48

Цитата:

Сообщение от Allan Stark (Сообщение 207495)
А для TreeStore ?
У него метода filter() нету.

Мо что-то из этого подойдет...

Allan Stark 03.10.2012 14:46

Может и подойдет, да не совсем подошло :)

В общем, на текущий момент в ExtJS 4.1.х (не ниже, во всяком случае на 4.0.х у меня не работало) дополнительные параметры серверному сценарию в случае тристореджа можно передать с помощью параметра extraParams прокси с последующей перезагрузкой стореджа:

Ext.getStore('treestore_invoices').proxy.extraParams = { 'dateFrom': df, 'dateTo': dt };
Ext.getStore('treestore_invoices').load();


Также есть "некрасивый" метод непосредственной правки строки url прокси:

Ext.getStore('treestore_invoices').proxy.url = 'load_invoices.php?df=1.01.2012&dt=30.01.2012';
Ext.getStore('treestore_invoices').load();


Часовой пояс GMT +3, время: 13:08.