Problème d'affichage de la liste déroulante de sélection multiple du magasin dans le module personnalisé

magento.stackexchange https://magento.stackexchange.com//questions/49937

  •  12-12-2019
  •  | 
  •  

Question

J'ai un module de communauté personnalisé dans lequel je souhaite autoriser le stockage de la liste déroulante à sélection multiple.

J'affiche déjà la liste déroulante mais lorsque j'enregistre sa valeur et que, si je modifie le formulaire, je ne vois pas la valeur sélectionnée en surbrillance bien que la valeur soit correctement stockée dans la base de données.

Quelqu'un peut-il me dire ce qu'il me manque dans le formulaire ?

Était-ce utile?

La solution

vous pouvez l'ajouter à votre Form.php

$fieldset->addField('store_id','multiselect',array(
            'name'      => 'stores[]',
            'label'     => Mage::helper('banners')->__('Store View'),
            'title'     => Mage::helper('banners')->__('Store View'),
            'required'  => true,
            'values'    => Mage::getSingleton('adminhtml/system_store')->getStoreValuesForForm(false, true)
        ));

et vous devez avoir une fonction dans votre module avec _afterLoad fonction

class Mage_Banners_Model_Mysql4_Banners extends Mage_Core_Model_Mysql4_Abstract
{
    public function _construct()
    {    
        // Note that the banners_id refers to the key field in your database table.
        $this->_init('banners/banners', 'banners_id');
    }


 protected function _afterLoad(Mage_Core_Model_Abstract $object)
{

    $select = $this->_getReadAdapter()->select()
        ->from($this->getTable('banners_store'))
        ->where('banners_id = ?', $object->getId());

    if ($data = $this->_getReadAdapter()->fetchAll($select)) {
        $storesArray = array();
        foreach ($data as $row) {
            $storesArray[] = $row['store_id'];
        }
        $object->setData('store_id', $storesArray);
    }

    return parent::_afterLoad($object);

}

le code ci-dessus est juste pour votre aide, vous pouvez le définir en fonction du nom de votre colonne et des tables de base de données

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top