Eu tenho um campo de formulário de administrador (caixa de texto),
$fieldset->addField('ajax_time_interval', 'text', array(
'label' => Mage::helper('dealroom')->__('Page Refresh Time Interval'),
'class' => 'required-entry',
'required' => true,
'name' => 'ajax_time_interval',
));
Eu preciso definir um valor padrão para este campo de texto. Eu tentei, assentando 'value' => '120',
nele. Mas não está funcionando.
$fieldset->addField('ajax_time_interval', 'text', array(
'label' => Mage::helper('dealroom')->__('Page Refresh Time Interval'),
'class' => 'required-entry',
'required' => true,
'name' => 'ajax_time_interval',
'value' => '120',
));
Como definir um valor padrão no campo?
setValues
..Respostas:
O próprio campo de texto é exibido? A configuração
'value' => '120'
parece correta para mim.fonte
addValues()
método for usado posteriormente, esses valores serão reescritos.Seu problema é que os valores que você define com o
addField()
método são substituídos peloaddValues()
método que tenta configurar os valores dos campos de um formulário quando o formulário é usado para editar entidades existentes ou ocorreu um erro durante o envio.Aqui está uma solução alternativa. Provavelmente você está obtendo valores com um método protegido como este:
Então, dentro do seu
_prepareForm()
método, você substitui:com:
fonte
Obrigado a todos por gastar seu valioso tempo e esforço. Eu estava usando
setValues()
depoisaddfields
. Portanto, os valores padrão estavam sendo limpos.Eu supero isso fornecendo um
if
loop, como:120 é o meu horário padrão aqui.
fonte
Para quem procura e está trabalhando no 1.9 e tem o seguinte
Você pode fazer o seguinte sem precisar editar os dados existentes, logo acima desse local do código:
Claro que você pode verificar o isset e tal, mas aqui está a versão básica da configuração de padrões.
fonte
Você pode usar
onde
$data
é uma matriz de campos de formulário.fonte
=> Você pode adicionar o atributo 'padrão' nos campos do formulário. Como isso :
fonte