2012-01-23 4 views
5

Ho ottenuto 4 pulsanti di opzione e desidero aggiungere una descrizione a ciascuno di essi. Non solo per il gruppo di pulsanti di opzione.Aggiungere descrizione a ciascun pulsante di opzione utilizzando drupal 7 forms api

Questo è il mio codice:

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

Non riesco a ottenere questo risultato, qualsiasi aiuto?

risposta

8

Per impostazione predefinita, i singoli pulsanti di opzione non ricevono una descrizione quando fanno parte delle radio, ma dovresti essere in grado di aggiungerne uno, in base a ciò che vedo nel codice.

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

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

Più tardi, quando i pulsanti di opzione vengono espansi a tasti separati, farà elementi radiofonici individuali a queste matrice [$ key] località, ma lo fa aggiungendo, quindi tutto ci anticipo viene conservato. Ciò significa che puoi aggiungere le descrizioni e te stesso e resteranno fedeli ai pulsanti di scelta.

+0

Questo funziona per me! GRAZIE! –

3

È necessario aggiungere una chiave aggiuntiva all'array del modulo per ogni opzione radio. La chiave dell'array del modulo dovrebbe essere la chiave dell'opzione disponibile da #options e il valore dovrebbe essere un array contenente la chiave di #description e la stringa che desideri fornire.

Per un esempio di campo, le opzioni radio sono memorizzate in $ form ['field_foo'] [$ lang] ['# opzioni']. Se il contenuto dell'array #options è ('acquirente' => 'Acquirente', 'venditore' => 'Venditore'), aggiungeremo le descrizioni come segue.

È un po 'strano, ma funziona. :)

Problemi correlati