2012-01-23 31 views
5

我有4个单选按钮,并且我想为它们中的每一个添加说明。不仅仅是一组单选按钮。使用drupal 7表单api向每个单选按钮添加说明

这是我的代码:

 $form['bedrijfsfiche'] = array(
     '#type' => 'radios', 
     '#title' => t('Keuze bedrijfsfiche'), 
     '#options' => array('basis' => t('Basisbedrijfsfiche: €125'), 'Uitgebreid' =>   t('Uitgebreide bedrijfsfiche: €250'), 'gratis' => t('Gratis bedrijfsfiche'), 'contact' => t('Contacteer mij telefonisch voor meer uitleg')), 
     '#access' => $admin, 
    ); 

我似乎无法做到这一点,任何帮助吗?

回答

8

默认情况下,根据我在代码中看到的内容,单个单选按钮在部分收音机中没有给出说明,但您应该可以自己添加一个。

$descriptions = array(...); // descriptions, indexed by key 

    foreach ($form['bedrijfsfiche']['#options'] as $key => $label) { 
    $form['bedrijfsfiche'][$key]['#description'] = $descriptions[$key]; 
    } 

后来,当单选按钮扩展到单独的按钮,它将使个人无线电元件阵列,这些[$关键]的位置,但它通过附加这样做,所以任何事先有保留。这意味着你可以添加描述,并且你自己和他们将坚持在实际的单选按钮。

+0

这适用于我!谢谢! –

3

您需要为每个无线电选项添加一个附加密钥到表单数组。表单数组的关键字应该是#options中可用选项的关键字,并且该值应该是包含#description的关键字和您想要提供的字符串的数组。

对于字段示例,无线电选项存储在$ form ['field_foo'] [$ lang] ['#options']中。如果#options数组的内容是('buyer'=>'Buyer','seller'=>'Seller'),那么我们添加如下描述。

// Since users and forms do not have language, use none. 
$lang = LANGUAGE_NONE; 

// Add descriptions to the radio buttons. 
$form['field_foo'][$lang]['buyer'] = array(
    '#description' => t('Are you a sommelier, wine director, or beverage manager?'), 
); 
$form['field_foo'][$lang]['seller'] = array(
    '#description' => t('Are you a wine rep for a distributor, wholesaler, importer, or for a specific label?'), 
); 

这有点奇怪,但它的工作原理。 :)

相关问题