<?php 

protected function _prepareForm()
    {
        $helper = Mage::helper(‘catalog');
        $form = new Varien_Data_Form(array(
                      'id'      => 'edit_form', //Id which appears on the form (html page). keep this name to avoid issues.
                      'action'  => $this->getUrl('*/*/myProcessFile'),
                      'method'  => 'post',
                      'enctype' => 'multipart/form-data'
                      )
        );


$fieldset = $form->addFieldset('base_fieldset', array('legend' => $helper->__('Form Dependency')));

//Show field2 yes/no
$fieldset->addField('field1', 'select', array(
                'name' => 'field1',
                'id'    =>  'field1',
                'label' => Mage::helper('catalog')->__('Show field 2'),
                'title' => Mage::helper('catalog')->__(’Show field 2'),
                'options' => Mage::getSingleton('adminhtml/system_config_source_yesno')->toArray(),
                'onChange' => 'this.value = this.checked ? 1 : 0;',
                'onclick' => 'clearFields1(this.value)',
                'value' => '',
                'after_element_html'    =>
                    '<script type="text/javascript">
                        function clearFields1(myValue) {
                            if (myValue=="0") {
                             document.getElementById("field2").value = "";
                             document.getElementById("field3").value = "";
                            }
                        }
                    </script>'
            )
        );

//Show field3 yes/no
$fieldset->addField('field2', 'select', array(
                'name' => 'field2',
                'id'    =>  'field2',
                'label' => Mage::helper('catalog')->__('Show field 3'),
                'title' => Mage::helper('catalog')->__(’Show field 3'),
                'options' => Mage::getSingleton('adminhtml/system_config_source_yesno')->toArray(),
                'onChange' => 'this.value = this.checked ? 1 : 0;',
                'onclick' => 'clearFields12(this.value)',
                'value' => '',
                'after_element_html'    =>
                    '<script type="text/javascript">
                        function clearFields2(myValue) {
                            if (myValue=="0") {
                             document.getElementById("field3").value = "";
                            }
                        }
                    </script>'
            )
        );

//field3 yes/no
$fieldset->addField('field3', 'select', array(
                'name' => 'field3',
                'id'    =>  'field3',
                'label' => Mage::helper('catalog')->__('Field 3'),
                'title' => Mage::helper('catalog')->__('Field 3'),
                'options' => Mage::getSingleton('adminhtml/system_config_source_yesno')->toArray(),
                'onChange' => 'this.value = this.checked ? 1 : 0;',
                'onclick' => 'clearFields13(this.value)',
                'value' => '',
                'after_element_html'    =>
                    '<script type="text/javascript">
                        function clearFields3(myValue) {
                            if (myValue=="0") {
                             alert('Do something’);
                            }
                        }
                    </script>'
            )
        );

// Set form to be rendered in template
$this->setForm($form);

// Set block for the "form_after" block in template
// @see /app/design/adminhtml/default/default/template/widget/form.phtml
$this->setChild('form_after',

    // The content of the "form_after" block is a Mage_Adminhtml_Block_Widget_Form_Element_Dependence block typ
    $this->getLayout()->createBlock('adminhtml/widget_form_element_dependence')

        /**
         * Map the form fields to the dependencies block IDs
         * This is kind of a "form field" => "dependencies block identifier" association
         */

        // Our form's "field1" is used with the "field1_depend_id" ID in the dependencies block
        ->addFieldMap('field1', 'filed1_depend_id')
        ->addFieldMap('field2', 'field2_depend_id')
        ->addFieldMap('field3', 'field3_depend_id')

        /**
         * Create dependencies
         * Each addFieldDependence() can be understood like:
         * "Show this [dependencies block identifier] if this [dependencies block identifier] is [value]
         *
         * Defined dependencies do stack. This allows some "AND" statements.
         */

        // Show 'show_child_depend_id' if 'show_children_depend_id' is '1'
        // In other words, based on the previous mapping: "Show the 'show_child_field' if 'show_children_field' value is 1
        ->addFieldDependence('field2_depend_id', 'field1_depend_id', '1')
        ->addFieldDependence('field3_depend_id', 'field1_depend_id', '1')
        ->addFieldDependence('field3_depend_id', 'field2_depend_id', '1')
        
);

$form->setUseContainer(true);
$this->setForm($form);

return parent::_prepareForm();
}


Please ensure, you need to create field1, field2 and field3 form fields.

Hope it helps

Cheers!

 

Categorized in: