Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set default value for form fields- Magento?

Tags:

php

magento

I have an admin form field(textbox),

$fieldset->addField('ajax_time_interval', 'text', array(
          'label'     => Mage::helper('dealroom')->__('Page Refresh Time Interval'),
          'class'     => 'required-entry',
          'required'  => true,
          'name'      => 'ajax_time_interval',
      ));

I need to set a default value for this text field. I tried, setting 'value' => '120', in it. But its not working.

$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', 
      ));

How to set a defalt value in that field?

like image 217
Vishnu R Avatar asked Nov 16 '25 21:11

Vishnu R


2 Answers

In my case, setValues() function was overriding the 'value' that I had set for the field.

Cause:

In my _prepareForm() function, I set the value as below:

$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', 
      ));

At the end of _prepareForm() function, there was the following line of code which would reset the form values:

$form->setValues($model->getData());

Solution:

Set model data before setValues() function as below:

if (!$model->getId()) {
    $model->setData('ajax_time_interval', '120');
}
$form->setValues($model->getData());
like image 126
Mukesh Chapagain Avatar answered Nov 19 '25 10:11

Mukesh Chapagain


you can do that by adding "default" attribute in field configurations.

$fieldset->addField('ajax_time_interval', 'text', array(
          'label'     => Mage::helper('dealroom')->__('Page Refresh Time Interval'),
          'class'     => 'required-entry',
          'required'  => true,
          'name'      => 'ajax_time_interval',
          'default'     => '120', 
      ));
like image 25
R T Avatar answered Nov 19 '25 09:11

R T