2012-01-23 8 views
5

4つのラジオボタンがあります。それぞれのラジオボタンに説明を追加します。ラジオボタンのグループだけでなく、drupalを使用して各ラジオボタンに説明を追加します。7 forms 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

これは私のために働く! THX! –

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

少し奇妙ですが、機能します。 :)

関連する問題