Drupal中的checkboxes的default_value

来源:互联网 发布:php身份证验证 编辑:程序博客网 时间:2024/06/09 14:21

今天在写模块的时候遇到一个问题。checkboxes的默认值怎么也获取不到。
需要说明一下,drupal的from API中,生成checkbox有二个方法,一种是自已循环生成,代码如下:

<?php
/**
* form['workflow']的其它内容
*/
foreach($data as $k=>$v){

   
$form['workflow'][$k] = array(
     
'#type' => 'checkbox',
     
'#title' => t($v),
     
'#default_value' => variable_get('nodewords_'. $form['#node_type']->type, 1),
    );
?>

 

另外一种叫 type= checkboxes,这样可以生成一组checkbox.这种方法适合大量的checkbox,我在模块中这样写:

 

<?php
     $form
['ad_box']['select_ad_box'] = array(
       
'#type' => 'checkboxes',
       
'#title' => t('Select the AD Info Box'),
       
'#required' => FALSE,
       
'#default_value' => test_default_value(),
       
'#options' => $options,
       
'#description' => t('Select the AD Info Box')
      );
?>

 

$options为一个数组,格式为array(4=>'this is title',5='this is title1'),
这样,drupal会自动生成一组checkbox,但是当我设置 #default_value的时候,却取不到值,开始我把它设为1,没有反应,我想是不是要和options的值对应,然后drupal在生成的时候会一一对应呢,结果还是不行。

最后google了一下,终于找到答案了,原来#default_value的值是$options中被选中的那个,如果想this is title这项被选中,则'#default_value' => array(0=>4)就可以了

 

原创粉丝点击