Campo di amministrazione Seleziona casella Valore predefinito dal database durante la modifica
-
12-12-2019 - |
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.
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