2011-11-29 57 views
3

我有這種形式:如何設置一個zend multiCheckbox表單字段並勾選複選框?

$this->addElement ( 
      'multiCheckbox', 'servers2', 
      array (
        'checkedValue' => '0', 
        'multiOptions' => array(
         '11.com' => '.com', 
         '12.com' => '12.com', 
         '16.com' => '16.com', 
         '3.com' => '17.com' 
         ) 
      )); 

的問題是checkedValue不適用於此設置工作,它爲一個簡單的複選框。我也試過'checkedValues' => array('1','0'),單數或複數, ,但沒有盡頭。

有什麼想法?

感謝

回答

11

標記爲檢查某些複選框,試試這個:

$multiCheckElement->setValue(array('11.com', '3.com')); 

// or 

$this->addElement ( 
    'multiCheckbox', 'servers2', 
    array (
     'value' => array('11.com', '3.com'), // select these 2 values 
     'multiOptions' => array(
        '11.com' => '.com', 
        '12.com' => '12.com', 
        '16.com' => '16.com', 
        '3.com' => '17.com' 
        ) 
    ) 
); 

又見Zend_Form_Element_MultiCheckbox

+0

謝謝,我沒有意識到它必須是一個數組。我一直按順序設置值,它只是檢查最後選擇的值。 –

+0

當我使用setValue($ arrayOfCheckedValues),這不工作在zend 2,任何想法如何解決它? –

2

ZF2將要求您使用value_options;

$form->add(
     array(
      'name' => 'servers2', 
      'type' => \Zend\Form\Element\MultiCheckbox::class, 
      'attributes' => array(
       'id' => 'servers2', 
       'class' => 'form-control', 
      ), 
      'options' => array(
       'label' => 'Servers 2', 
       'column-size' => 'sm-10', 
       'label_attributes' => array('class' => 'col-sm-2'), 
       'twb-layout' => 'horizontal', 
       'value_options' => array(
        '11.com' => '.com', 
        '12.com' => '12.com', 
        '16.com' => '16.com', 
        '3.com' => '17.com' 
       ) 
      ), 
     ) 
    ); 
+0

問題是關於在每個選中的複選框中設置勾號。您的回答似乎並未提供該信息。它只顯示可能的選項,而不是選中的選項。 – Stephane

+0

不,這個答案在這裏是上面(用數組填充的「值」鍵)。我只是在這裏告訴你,ZF2要求命名爲'value_options'而不是'multiOptions'。 –

+1

我的錯誤Rob。我沒有看到@ drew010的答案中的'value'屬性是在Zend 1中指定它的方式。我正在尋找並嘗試使用另一個'value_options'屬性的ZF2。 – Stephane

0

要指定勾選的選項,如圖at 使用'selected' => true屬性:

$options = array(
    array(
     'value' => '0', 
     'label' => 'Apple', 
     'selected' => false, 
     'disabled' => false, 
     'attributes' => array(
      'id' => 'apple_option', 
      'data-fruit' => 'apple', 
     ), 
     'label_attributes' => array(
      'id' => 'apple_label', 
     ), 
    ), 
    array(
     'value' => '1', 
     'label' => 'Orange', 
     'selected' => true, 
    ), 
    array(
     'value' => '2', 
     'label' => 'Lemon', 
    ), 
);