2012-01-23 64 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?'), 
); 

這有點奇怪,但它的工作原理。 :)

相關問題