2012-01-23 17 views
5

मुझे 4 रेडियो बटन मिले, और मैं उनमें से प्रत्येक को एक विवरण जोड़ना चाहता हूं। न केवल रेडियो बटन के समूह के लिए।ड्रूपल 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

आपको प्रत्येक रेडियो विकल्प के लिए फॉर्म सरणी में एक अतिरिक्त कुंजी जोड़ने की आवश्यकता है। फॉर्म सरणी की कुंजी # विकल्प से उपलब्ध विकल्प की कुंजी होनी चाहिए, और मान एक सरणी होना चाहिए जिसमें # डिस्क्रिप्शन की कुंजी और स्ट्रिंग जो आप प्रदान करना चाहते हैं।

फ़ील्ड उदाहरण के लिए, रेडियो विकल्प $ form ['field_foo'] [$ lang] ['# options'] में संग्रहीत किए जाते हैं। यदि #options सरणी की सामग्री ('खरीदार' => 'क्रेता', 'विक्रेता' => 'विक्रेता') है तो हम विवरण निम्नानुसार जोड़ते हैं।

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

यह थोड़ा अजीब है, लेकिन यह काम करता है। :)