2012-01-23 13 views
5

Mam 4 przyciski radiowe, i chciałbym dodać opis do każdego z nich. Nie tylko dla grupy przycisków radiowych.Dodaj opis do każdego przycisku radiowego za pomocą formularzy drupal 7 api

To jest mój kod:

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

I nie może wydawać się to osiągnąć, żadnej pomocy?

Odpowiedz

8

Domyślnie poszczególne przyciski radiowe nie mają opisu, gdy są częścią radia, ale powinieneś być w stanie je dodać samodzielnie, w oparciu o to, co widzę w kodzie.

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

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

Później, gdy przyciski radiowe są rozszerzane do oddzielnych przycisków, sprawi, że poszczególne elementy radiowych tych tablica [$ key] miejsc, ale robi to przez dodanie, więc coś tam wcześniej jest zachowana. Oznacza to, że możesz dodać opisy i siebie, a one będą się znajdować w rzeczywistych przyciskach radiowych.

+0

To działa dla mnie! DZIĘKI! –

3

Musisz dodać dodatkowy klucz do tablicy formularzy dla każdej opcji radiowej. Klucz tablicy form powinien być kluczem dostępnej opcji z #options, a wartość powinna być tablicą zawierającą klucz #description i ciągiem, który chcesz podać.

Dla przykładu pola opcje radiowe są przechowywane w $ form ['field_foo'] [$ lang] ['# options']. Jeśli zawartość tablicy #options to ("kupujący" => "kupujący", "sprzedawca" => "sprzedawca"), dodajemy następujące opisy.

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

To trochę dziwne, ale działa. :)

Powiązane problemy