Получить данные из grid после unckeck checkbox

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 forastr
  • Группа: Пользователь
  • Сообщений: 36
  • Регистрация: 18.01.2012

05.11.2012 11:38

создал свою вкладку в product наподобие related products:
$product_content = $this->getLayout()->createBlock('dv/adminhtml_catalog_product_edit_tab_personleft', 'adminform_personleft.grid')->toHtml();
				$serialize_block = $this->getLayout()->createBlock('adminhtml/widget_grid_serializer');
				$serialize_block->initSerializerBlock('adminform_personleft.grid', 'getSelectedLeftProducts', 'links[personleft]', 'product_personleft');
				$product_content .= $serialize_block->toHtml(); 
				$this->addTab('personleft', array(
					'label'     => Mage::helper('catalog')->__('Personalize product(left)'),
					'title'     => Mage::helper('catalog')->__('Personalize product(left)'),
					'content' => $product_content
				));

Могу получить данные о том что пользователь отметил некоторые продукты в сетке.Вот только не знаю как получить данные о том , если пользователь просто убрал галочку с отмеченных ранее продуктов. В этом случае post пустой после сохранения продукта. Мб подскажите как мне быть?

#2 Сергей Остапчик
  • Группа: Пользователь
  • Сообщений: 6
  • Регистрация: 29.11.2011

05.11.2012 14:47

Как вариант:
1. При загрузке табы сериализуем чекбосы и сохраняем их в какую-нибудь переменную.
2. Подвеситься на изменение значения чекбоксов, что бы при "снятии чекбокса", который был изначально отмечен, сохранять его в какую-нибудь переменную, например unchecked_products[] (важно что б туда не падали все чекбоксы, даже те которые были изначально не отмечены)
3. Сделать скрытый инпут элемент в который будем сохранять переменную unchecked_products[]

Собственно после этого у вас в посте будет массив "отмеченных" чекбоксов и массив "снятых"

#3 forastr
  • Группа: Пользователь
  • Сообщений: 36
  • Регистрация: 18.01.2012

05.11.2012 18:05

спасибо dvim за помощь. Решил я отказаться от идеи использовать serialize block. Сделал проще:
когда делал grid написал вот так
$this->addColumn('in_products', array(
			'header_css_class' => 'a-center',
			'type'      => 'checkbox',
			'field_name' => 'personleft[]',
			'name'      => 'in_products',
			'values'    => $this->_getSelectedProducts(),
			'align'     => 'center',
			'index'     => 'entity_id'
		));

и теперь без проблем брал Mage::app()->getRequest()->getPost('personleft'); и тут все было нормально)) Ключевая строчка 'field_name' => 'personleft[]'.

Поделиться темой: