Magento, заполнение полей флажков в форме редактирования администратора


У меня есть страница формы, где я использую

$form->addField('name', 'checkboxes', array('label' => 'check', 'name' => 'name[]',
    'values' => array(
        array('value'=>'1', 'label'=>'1'),
        array('value'=>'2', 'label'=>'2'),
        array('value'=>'3', 'label'=>'3'),
        array('value'=>'4', 'label'=>'4'),
        array('value'=>'5', 'label'=>'5'),
    )
));

Для создания списка флажков.

Проблема в том, что я не могу понять, как заставить их заполняться при редактировании. Кто-нибудь может сказать мне, как это сделать?

Я использую тип флажков, чтобы они отображались в виде списка, а не в виде отдельных строк в форме. Если есть способ создать их как отдельные поля, но все в одном ряду, я хотел бы знать, как это сделать.

4 4

4 ответа:

$form->addField('name', 'checkboxes', array('label' => 'check', 'name' => 'name[]',
    'values' => array(
        array('value'=>'1', 'label'=>'1'),
        array('value'=>'2', 'label'=>'2'),
        array('value'=>'3', 'label'=>'3'),
        array('value'=>'4', 'label'=>'4'),
        array('value'=>'5', 'label'=>'5'),
    ),
    'value' => array('1', '5'),
    // or 
    // 'checked' => array('1', '5')
));

Затем будут установлены флажки со значениями "1" и "5". Для получения более подробной информации вы можете проверить lib/Varien/Data/Form/Element/Checkboxes.php

Я также приложил код или вы можете перейти по ссылке ниже для получения дополнительной помощи
http://pastebin.com/hKMmryE9

Magento, populating checkboxes fields on an admin edit form
$form->addField('name', 'checkboxes', array('label' => 'check', 'name' => 'name[]',
    'values' => array(
        array('value'=>'1', 'label'=>'1'),
        array('value'=>'2', 'label'=>'2'),
        array('value'=>'3', 'label'=>'3'),
        array('value'=>'4', 'label'=>'4'),
        array('value'=>'5', 'label'=>'5'),
    )
));

$form->addField('name', 'checkboxes', array('label' => 'check', 'name' => 'name[]',
    'values' => array(
        array('value'=>'1', 'label'=>'1'),
        array('value'=>'2', 'label'=>'2'),
        array('value'=>'3', 'label'=>'3'),
        array('value'=>'4', 'label'=>'4'),
        array('value'=>'5', 'label'=>'5'),
    ),
    'value' => array('1', '5'),
    // or
    // 'checked' => array('1', '5')
));

Немного улучшено и проверено:

$fieldset->addField('payment_methods', 'checkboxes', array('label' => 'Payment Methods', 'name' => 'payment_methods[]',
'values' => array(
    array('value'=>'1', 'label'=>'Cash'),
    array('value'=>'2', 'label'=>'Paypal'),
    array('value'=>'3', 'label'=>'Authorize.Net'),
    array('value'=>'4', 'label'=>'Square'),
),
        'required' => true,
        'checked' => array('1','4'),
        'disabled' => array('1'), ////if you want
));
Create $array like below
Array
(
    [0] => Array
        (
            [value] => 1
            [label] => Value 1
        )
    [1] => Array
        (
            [value] => 2
            [label] => Value 2
        )
    [2] => Array
        (
            [value] => 3
            [label] => Value 3
        )
    [3] => Array
        (
            [value] => 4
            [label] => Value 4
        )
    [4] => Array
        (
            [value] => 5
            [label] => Value 5
        )
)
$fieldset->addField('checkboxes', 'checkboxes', array(


 'label'     => 'Select Value',
                          'name'      => 'checkboxes[]',
                          'values' => $array,
                          'onclick' => "",
                          'onchange' => "",
                          'disabled' => false,
                          'after_element_html' => '',
                          'tabindex' => 1
                        ));