Domanda

Ho un problema durante la modifica del mio modulo di amministrazione personalizzato.

Modulo personalizzato che funziona bene ma durante la modifica Devo un display Selezionare il valore della casella come selezionato dai record del database,

Ho due valori e nel database, il tipo di dati è l'enumerazione.I valori sono

1=> Immagine 2=> video

Durante la modifica Devo visualizzare l'immagine o il video in base al valore del database.Ma non sto ottenendo il risultato giusto qui è il mio codice.

$fieldset->addField('add_type', 'select', array(
          'label'     => Mage::helper('advertisement')->__('Media'),
          'name'      => 'add_type',
          'onchange' => 'checkSelectedItem(this.value)',
          'value'  => '',
          'values' => array(array('value'=>'0','label'=>'Select Type'),
                            array('value'=>'1','label'=>'Image'),
                            array('value'=>'2','label'=>'Video'),
                       ),
);
.

Ho provato anche questo

$recordId = Mage::registry('storeadvertisement_data')->getData();
        $selectVal = Mage::getModel('advertisement/advertisement')->load($recordId['id'])->getData('add_type');
  $fieldset->addField('add_type', 'select', array(
          'label'     => Mage::helper('advertisement')->__('Media'),
          'name'      => 'add_type',
          'onchange'  => 'checkSelectedItem(this.value)',
          'value'     => $selectVal,
          'values'    => array(array('value'=>'0','label'=>'Select Type'),
                            array('value'=>'1','label'=>'Image'),
                            array('value'=>'2','label'=>'Video'),
                       ),
);
.

ma non ha aiutato.

È stato utile?

Soluzione

Alla fine del modulo prima di chiamare return parent::_prepareForm();:

$form->addValues(Mage::registry('storeadvertisement_data')->getData());
.

Se la variabile del modulo non è denominata $form, modifica il nome della variabile anche nel codice sopra.

Altri suggerimenti

Ho ricevuto risposta. Ho sbagliato mentre ottieni il valore dal database e aggiungo il nome delle opzioni del nome del campo, Attualità riceve i valori dal database come segue

Array
        (
            [id] => 29
            [store_id] => 8
            [add_type] => video
            [add_name] => beckmanpro 2
            [description] => seccond add for beckmanpro 
            [status] => active
            [url] => //www.youtube.com/embed/xVXZzm_bjHE
            [link] => http://canon.com
            [created_at] => 2014-08-25 11:14:09
            [updated_at] => 2014-08-25 11:14:09
        )
.

Controllare il valore di Add_type nell'array sopra. E il mio codice precedente come segue.

$fieldset->addField('add_type', 'select', array(
        'label' => Mage::helper('advertisement')->__('Media'),
        'title' => Mage::helper('advertisement')->__('Media'),
        'name' => 'add_type',
        'required' => true,
        'options' => array(
            '0' => 'Select Type',
            '1' => 'Image',
            '2' => 'Video',
        ),
    ));
.

Controlla Opzioni nel codice sopra.L'errore è fatto qui,

L'array dice che il valore per ADD_TYPE è come Video , ma sto aggiungendo il valore come 0, 1, 2 per ciascuno, quindi posso modificare il mio codice come segue

$fieldset->addField('add_type', 'select', array(
          'label'     => Mage::helper('advertisement')->__('Media'),
          'name'      => 'add_type',
          'options' => array(
            '0' => 'Select Type',
            'image' => 'Image',
            'video' => 'Video',
        )
);
.

Grazie a tutti.E grazie @marius e @ r.s

Prova

  $fieldset->addField('add_type', 'select', array(
        'label' => Mage::helper('advertisement')->__('Media'),
        'title' => Mage::helper('advertisement')->__('Media'),
        'name' => 'add_type',
        'required' => true,
        'options' => array(
            '0' => 'Select Type',
            '1' => 'Image',
            '2' => 'Video',
        ),
        'after_element_html' => ' ' . Mage::helper('adminhtml')->__('[GLOBAL]'),
    ));
.

quindi

 if ( Mage::getSingleton('adminhtml/session')->get<Module>Data() ){
      $form->setValues(Mage::getSingleton('adminhtml/session')->get<Module>Data());
      Mage::getSingleton('adminhtml/session')->set<Module>Data(null);
 } elseif ( Mage::registry('<module>_data') ) {
     $form->setValues(Mage::registry('<module>_data')->getData());
 }
.

prova la cancellazione della cache

Vedi Magento - Wiki - Modulo personalizzato con tabella database personalizzata

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top