如何选择magento的编辑网格部分中的多个复选框

时间:2013-06-13 08:16:59

标签: magento

http://magento.localhost.com/index.php/arithmetic/adminhtml_arithmetic/edit/id/5/key/c03c12d4c338a2e4cdbb93c3d9e511a93401d19b21a13ea77cffda20cac94577/

这就是我的链接。我在编辑网格页面中通过ID获取所有值

有一个多个复选框的部分。如何根据结果数组选择所有复选框

$fieldset-> addField('st_user_interest', 'checkboxes', array(
        'label'     => Mage::helper('arithmetic')->__('Interest'),

        'required'  => true,
        'name'      => 'st_user_interest[]',
    'values'    => array(

        array(
            'label'     => Mage::helper('arithmetic')->__('Education'),
            'value'     => 'education',
        'class'     => 'required-one',

        ),
        array(
           'label'     => Mage::helper('arithmetic')->__('Business'),
            'value'     => 'business',
          'class'     => 'required-one',

        ),
        array(
            'label'     => Mage::helper('arithmetic')->__('Marketing'),
            'value'     => 'marketing',
         'class'     => 'required-one',

        ),

        array(
            'value'     => 'investment',
            'label'     => Mage::helper('arithmetic')->__('Investment'),
         'class'     => 'required-one',
        )
        ),      

    ));

由于

1 个答案:

答案 0 :(得分:0)

在存储数组字段值时,我们将数组转换为字符串后存储为字符串,

所以在setValues()时,Magento要查找与数组相同的输入字段值来检查复选框

Trick是将存储的字符串值转换为数组并分配给将起作用的列字段

<强> Package_Arithmetic_Block_Adminhtml_Arithmetic_Edit_Tab_Form

protected function _prepareForm()
{

 $id = $this->htmlEscape(Mage::registry('arithmetic_data')->getIn_user_id());
$model = Mage::getModel("arithmeti/newuser")->load($id);

/* here is the stuff witch converting the stored string to array and set in                          st_user_interest */
$interest = $model->getSt_user_interest();
$model->setSt_user_interest(explode(',',$interest));


    $form = new Varien_Data_Form();
    $this->setForm($form);
    $fieldset = $form->addFieldset('arithmetic_form', array('legend'=>Mage::helper('arithmetic')->__('User information')));


  $fieldset-> addField('st_user_interest', 'checkboxes', array(
    'label'     => Mage::helper('arithmetic')->__('Interest'),

    'required'  => true,
    'name'      => 'st_user_interest[]',
'values'    => array(

    array(
        'label'     => Mage::helper('arithmetic')->__('Education'),
        'value'     => 'education',


    ),
    array(
       'label'     => Mage::helper('arithmetic')->__('Business'),
        'value'     => 'business',


    ),
    array(
        'label'     => Mage::helper('arithmetic')->__('Marketing'),
        'value'     => 'marketing',


    ),

    array(
        'value'     => 'investment',
        'label'     => Mage::helper('arithmetic')->__('Investment'),

    )
    ),      

));

if ( Mage::getSingleton('adminhtml/session')->getArithmeticData() )
    {

        $form->setValues(Mage::getSingleton('adminhtml/session')->getArithmeticData());
        Mage::getSingleton('adminhtml/session')->setArithmeticData(null);
    } elseif ( $model->getData() ) {


    //Mage::registry('arithmetic_data')->getData(); /* removing this line and adding $model->getData() inslde the $form->setValues() */
        $form->setValues($model->getData());

    } 


    return parent::_prepareForm();

}