2012-01-23 17 views
5

4 radyo düğmem var ve bunların her birine bir açıklama eklemek istiyorum. Sadece radyo düğmeleri grubuna değil.drupal 7 form api kullanarak her radyo düğmesine açıklama ekleyin

Bu benim kodudur: Ben, herhangi bir yardım bunu gerçekleştirmek için görünmüyor olabilir

 $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, 
    ); 

?

cevap

8

Varsayılan olarak, radyoların bir parçası olduğunda, ayrı ayrı radyo düğmelerine bir açıklama verilmez, ancak kodda gördüğüme göre kendiniz bir tane ekleyebilmeniz gerekir. radyo düğmeleri ayrı düğmelere genişletilir Daha sonra

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

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

, bu dizi [$ key] yerlere bireysel radyo elemanları yapacak, ancak ekleyerek yapar, yani orada hiçbir şey önceden korunur. Bu, açıklamaları ekleyebileceğiniz anlamına gelir ve kendiniz ve gerçek radyo düğmelerinin etrafında dururlar.

+0

Bu benim için çalışıyor! TEŞEKKÜRLER! –

3

Her radyo seçeneği için form dizisine ek bir anahtar eklemeniz gerekir. Form dizininin anahtarı # seçeneklerden mevcut seçeneğin anahtarı olmalı ve değer #description anahtarını ve sağlamak istediğiniz dizeyi içeren bir dizi olmalıdır.

Bir alan örneği için, radyo seçenekleri $ formunda saklanır ['field_foo'] [$ lang] ['# options']. #options dizisinin içeriği ('alıcı' => 'Alıcı', 'satıcı' => 'Satıcı') ise, aşağıdaki gibi açıklamaları ekleriz.

// 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?'), 
); 

Biraz garip ama işe yarıyor. :)