Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.03.2012, 11:07
Новичок на форуме
Отправить личное сообщение для tigeralhimik Посмотреть профиль Найти все сообщения от tigeralhimik
 
Регистрация: 29.03.2012
Сообщений: 3

Есть Ext.grid.Panel. Как в store передать параметр?
Доброе утро!
Есть Ext.grid.Panel. Как в store передать в качестве параметра дату из календаря dateMenu с формы?

вот код:
var gridDisloc = Ext.define('gridDisloc',
  {
  extend: 'Ext.grid.Panel',
  alias: 'widget.tablegrid',

  requires:['*'],

  initComponent: function() {
      var pointer = this;

      var fileWindow = new FileForm;

      var selectedToEdit = null;

      var editAction = Ext.create('Ext.Action',
        {
        icon: 'resources/themes/images/default/dd/drop-add.gif', // Use a URL in the icon config
        text: 'Редактировать запись',
        handler: function(widget, event) {
            selectedToEdit = pointer.getSelectionModel().getSelection()[0];
            var editWindow = new EditForm (selectedToEdit);
            editWindow.display();

          }
        }
      );

      var dateMenu = Ext.create('Ext.menu.DatePicker',
        {
        handler: function(dp, date) {
            storedislocdt.load();
          }
        }
      );

      var contextMenu = Ext.create('Ext.menu.Menu',
        {
        items:[editAction]
        }
      );

      var filterFrom = Ext.create('Ext.form.field.Date',
        {
        xtype: 'datefield',
        id: 'From',
        name: 'From'
        }
      );

      var d = new Date();
      var day = d.getDate();
      var month = d.getMonth() + 1;
      var year = d.getFullYear();

      filterFrom = year + "-" + month + "-" + day;

      Ext.apply(this,
        {
        columnLines: true,
        editable: true,
        store: storedislocdt,
        title: 'Дислокации',
        viewConfig: {
          stripeRows: true,
          listeners: {
            itemcontextmenu: function(view, rec, node, index, e) {
                e.stopEvent();
                contextMenu.showAt(e.getXY());
                return false;
              }
            }
          },
        columns:[
            {
            text: '#',
            flex: 1,
            sortable: true,
            dataIndex: 'id',
            width: 4
            },
            {
            text: '№ Вагона',
            flex: 1,
            sortable: true,
            dataIndex: 'Vagon'
            },
            {
            text: 'Вагоновладелец',
            flex: 1,
            sortable: true,
            dataIndex: 'IDOwner'
            }
          ],
        height: 900,

        region: 'center',
        layout: 'fit',
        tbar:[
            {
            text: 'Выберите дату',
            iconCls: 'calendar',
            menu: dateMenu
            },
            {
            text: 'Выборка',
            tooltip: 'Выборка',
            iconCls: 'add',
            handler: function() {
                searchBYDATE();
                pointer.hide();
              }
            }, filterFrom

          ]
        }
      );
      this.callParent();

      function searchBYDATE() {
        Ext.Ajax.request(
          {
          waitMsg: 'Пожалуйста, подождите',
          url: 'names.php',
          params: {
            task: 'LISTINGDISLOCDT',
            DT: dateMenu.getValue()
            },
          success: function(response) {
              var result = eval(response.responseText);
              switch (result) {
                case 1:
                  Ext.MessageBox.alert('Успех', 'Запись добавлена');
                  //storestations.load();
                  pointer.hide();

                  break;
                case 2:
                  Ext.MessageBox.alert('Успех', 'Запись обновлена');
                  //storestations.load();
                  pointer.hide();

                  break;
                default:
                  Ext.MessageBox.alert('Упс', 'Возникла ошибка'+result);

              }
            },
          failure: function (response) {
              var result = response.responseText;
              Ext.MessageBox.alert('Упс', 'Ошибка подключения к базе');
            }
          }
        )
      };


    },
  onSync: function() {
      this.storedislocdt.sync();
    }



  }
);
Ответить с цитированием
  #2 (permalink)  
Старый 29.03.2012, 12:39
Аватар для Ex_Soft
Профессор
Отправить личное сообщение для Ex_Soft Посмотреть профиль Найти все сообщения от Ex_Soft
 
Регистрация: 19.12.2009
Сообщений: 162

Сообщение от tigeralhimik Посмотреть сообщение
Как в store передать в качестве параметра дату из календаря dateMenu с формы?
storedislocdt.load({ params: { paramName: paramValue} })? (если я Вас правильно понял)
__________________
"Helo, word!" - 17 errors 56 warnings
Ответить с цитированием
  #3 (permalink)  
Старый 29.03.2012, 13:00
С++/C# modest developer
Отправить личное сообщение для nekto_O Посмотреть профиль Найти все сообщения от nekto_O
 
Регистрация: 07.11.2011
Сообщений: 244

Ex_Soft,
еще можно так:
storedislocdt.getProxy().extraParams = { paramName: paramValue };
storedislocdt.load();

Разница здесь есть небольшая.
params как единовременные параметры, а extraParams запоминается в Proxy.

Последний раз редактировалось nekto_O, 29.03.2012 в 13:07.
Ответить с цитированием
  #4 (permalink)  
Старый 29.03.2012, 13:11
Новичок на форуме
Отправить личное сообщение для tigeralhimik Посмотреть профиль Найти все сообщения от tigeralhimik
 
Регистрация: 29.03.2012
Сообщений: 3

Попробовал. не передает параметр
обновил следующий код:

var dateMenu = Ext.create('Ext.menu.DatePicker',
        {
        handler: function(dp, date) {
            storedislocdt.load({
                params: {
                     DT: '2012-03-28'
                }
            })
          }
        }
      );


в серверной части в коде переменная DT пустая

серверная часть:
function getListDislocDT() {
    $dat = $_POST['DT'];
	$query = "SELECT * FROM main WHERE DTImport<'".$dat."'";
	$result = mysql_query($query);
	$nbrows = mysql_num_rows($result);

	if($nbrows>0){
		while($rec = mysql_fetch_assoc($result)){
    	    $i++;
			$arr[] = $rec;
		}
		$jsonresult = json_encode($arr);
		echo '{"results":'.$jsonresult.'}'; 
	} else {
		echo '{"results":'.$query.'}';
	}
}

Последний раз редактировалось tigeralhimik, 29.03.2012 в 13:20.
Ответить с цитированием
  #5 (permalink)  
Старый 29.03.2012, 13:27
Аватар для Ex_Soft
Профессор
Отправить личное сообщение для Ex_Soft Посмотреть профиль Найти все сообщения от Ex_Soft
 
Регистрация: 19.12.2009
Сообщений: 162

Сообщение от tigeralhimik Посмотреть сообщение
Попробовал. не передает параметр
...
в серверной части в коде переменная DT пустая

серверная часть:
$dat = $*!*_POST*/!*['DT'];
Я не силен в PHP, но Ctrl+Shift+K || Firebug Вам в руки...
__________________
"Helo, word!" - 17 errors 56 warnings
Ответить с цитированием
  #6 (permalink)  
Старый 29.03.2012, 13:55
С++/C# modest developer
Отправить личное сообщение для nekto_O Посмотреть профиль Найти все сообщения от nekto_O
 
Регистрация: 07.11.2011
Сообщений: 244

tigeralhimik,
var_dump($_POST, $_GET);

или в консоль загляните, не может быть чтоб параметры не передавались...
Ответить с цитированием
  #7 (permalink)  
Старый 29.03.2012, 14:09
Аватар для Ex_Soft
Профессор
Отправить личное сообщение для Ex_Soft Посмотреть профиль Найти все сообщения от Ex_Soft
 
Регистрация: 19.12.2009
Сообщений: 162

Сообщение от nekto_O Посмотреть сообщение
params как единовременные параметры, а extraParams запоминается в Proxy.
Вот и я ж о чем: extraParams, IMHO, лучче юзать для т.н. "условно-постоянных" параметров, а, в случае ТС, дата - оперативный параметр. Ну и... Не забываем, что extraParams можно перекрыть в params...
__________________
"Helo, word!" - 17 errors 56 warnings

Последний раз редактировалось Ex_Soft, 29.03.2012 в 14:17.
Ответить с цитированием
  #8 (permalink)  
Старый 29.03.2012, 20:38
Новичок на форуме
Отправить личное сообщение для tigeralhimik Посмотреть профиль Найти все сообщения от tigeralhimik
 
Регистрация: 29.03.2012
Сообщений: 3

Передал параметры через storedislocdt.proxy.extraParams, как и советовали!

Ex_Soft, nekto_O, спасибо за помощь!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как передать значение переменной в IFRAME в поле формы JS-ом из самой страницы? DeUre Общие вопросы Javascript 14 17.12.2013 15:37
Как передать элемент в переменную из функции kichSman jQuery 3 12.07.2011 22:16
Как передать параметр id pegass jQuery 2 16.02.2011 08:43
Как передать фокус флешке на странице? dArky Общие вопросы Javascript 3 10.08.2008 01:03
Как передать элемент в функцию после createElement Oleg NT Общие вопросы Javascript 3 23.06.2008 02:11