जब मैं Drupal 7 फॉर्म API का उपयोग करके एक मानक चयन बॉक्स बनाता हूं, तो पहला मान (एक ताजा 'रिक्त फॉर्म' पर चयनित एक) है <option selected="selected" value="">- Select -</option>
। यह मान प्रपत्र परिभाषा में निर्दिष्ट नहीं है और मैं कोई भी फ़ॉर्म परिवर्तन नहीं कर रहा हूं। (यह ठीक है)
हालाँकि, जब मैं एक दूसरा चयन बॉक्स बनाता हूं जो पहले उपयोग पर निर्भर करता है #states
, तो इसका कोई ऐसा डिफ़ॉल्ट मान नहीं है। कई निर्भरता वाले जटिल रूपों के लिए यह असंगति एक समस्या है।
एक उदाहरण के रूप परिभाषा इस प्रकार है:
function sb_quickquote_test_form($form, &$form_state, $post=array()) {
$fields['first_select'] = array(
'#type' => 'select',
'#title' => 'First select box',
'#options' => Array('First', 'Second', 'Third'),
'#required' => TRUE,
);
$fields['dependent_delect'] = array(
'#type' => 'select',
'#title' => 'Dependent select box',
'#options' => Array('Something', 'Another thing', 'Something else', 'Final thing'),
'#states' => Array(
'visible' => Array('select[name=first_select]' => array('value' => '2')),
'required' => Array('select[name=first_select]' => array('value' => '2')),
),
);
$fields['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
return $fields;
}
इस सरल उदाहरण में, हमारे पास 2 चुनिंदा बॉक्स और एक सबमिट बटन है। दो चुनिंदा बक्से इस प्रकार प्रदर्शित होते हैं:
______________ ________________
| - Select - |v| | Something |v|
`--------------' `----------------'
| - Select - | | Something | <- no empty option
| First | | Another thing |
| Second | | Something else |
| Third | | Final thing |
-------------- ----------------
( #states
सेटिंग के कारण, दूसरा चयन बॉक्स केवल तभी प्रकट होता है जब पहले चयनित बॉक्स में "तीसरा" चयनित होता है)
यह असंगति एक ऐसी स्थिति में समस्या पैदा कर रही है जहां हम अंतर-निर्भर क्षेत्रों के साथ जटिल गतिशील रूप उत्पन्न कर रहे हैं।
क्या किसी को भी पता नहीं है कि खेतों को असंगत विकल्प क्यों दिए जा रहे हैं और समस्या के आसपास काम करने के लिए सबसे अच्छा तरीका क्या है?