I am a bit confused. I have created a simple form with a one text box and a submit button. Now I want to add a select/option dropdown box of taxonomy terms, using the taxonomy_get_vocabularies() function.
$vocabularies = taxonomy_get_vocabularies('my_type');
My question is how do I get vocabulary list onto form "the Drupal way". The way Drupal defines form seem quite rigid. Also how could I make this conditionl, say on existence of relevant taxonomy terms.
function my_form_name($form_state) {
// A Short question.
$form['title'] = array(
'#type' => 'textfield',
'#title' => t('Question'),
'#default_value' => $node->title,
'#required' => TRUE,
'#weight' => 1,
'#description' => t('A text box goes here '),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('submit'),
'#weight' => 7,
);
return $form;
I'm doing something similar in a custom form, and found it much easier to use taxonomy_get_tree, with the vocabulary code as the function's argument. See below:
//get the list of locations from taxonomy to use in the dropdown
$dropdown_source = taxonomy_get_tree(2);
$dropdown_array = array('0' => '--none--');
foreach ($dropdown_source as $item) {
$key = $item->tid;
$value = $item->name;
$dropdown_array[$key] = $value;
}
//location filter dropdown
$form['filterset']['locationfilter'] = array(
'#weight' => '1',
'#key_type' => 'associative',
'#multiple_toggle' => '1',
'#type' => 'select',
'#options' => $dropdown_array,
'#title' => 'Filter by location',
);
unset($dropdown_array);