我有4个单选按钮,我想为每个按钮添加一个描述。不仅仅是单选按钮组。
这是我的代码:
$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,
);
我似乎无法完成任何帮助?
答案 0 :(得分:8)
默认情况下,单独的单选按钮在部分无线电时没有给出说明,但您应该能够根据我在代码中看到的内容自行添加一个。
$descriptions = array(...); // descriptions, indexed by key
foreach ($form['bedrijfsfiche']['#options'] as $key => $label) {
$form['bedrijfsfiche'][$key]['#description'] = $descriptions[$key];
}
稍后,当单选按钮扩展为单独的按钮时,它将为这些数组[$ key]位置创建单独的无线电元素,但它通过追加来实现,因此事先保留任何内容。这意味着你可以添加描述,你自己也可以在实际的单选按钮中添加。
答案 1 :(得分:3)
您需要为每个无线电选项的表单数组添加一个附加键。表单数组的键应该是#options中可用选项的键,值应该是一个包含#description键和你想要提供的字符串的数组。
对于字段示例,无线电选项存储在$ form ['field_foo'] [$ lang] ['#options']中。如果#options数组的内容是('buyer'=>'买方','卖方'=&'卖方'),那么我们按如下方式添加说明。
// 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?'),
);
这有点奇怪,但它确实有效。 :)