以下是我的測試碼,利用測試在hook_form_alter()裡面,我不懂得是為什麼$form['test1']用drupal_render解出來的跟return回去解出來的html會不一樣,請教各位大大form產生的方式。
下面這個是from的產生:
$form['test1'] = array(
'#type' => 'select',
'#multiple' => TRUE,
'#title' => t('Category of event'),
'#required' => FALSE,
'#options' => array(
0 =>'a',
1 =>'b',
2 =>'c',
3 =>'d',
),
'#size' => 5,
'#weight' => 0,
//'#default_value' => array(1, 3),
'#value' => array(1, 3)
);
$str = drupal_render($form['test1']); //from被unset
$form['test2'] = array('#markup' => $str);
$form['test1'] = array(
'#type' => 'select',
'#multiple' => TRUE,
'#title' => t('Category of event'),
'#required' => FALSE,
'#options' => array(
0 =>'a',
1 =>'b',
2 =>'c',
3 =>'d',
),
'#size' => 5,
'#weight' => 0,
//'#default_value' => array(1, 3),
'#value' => array(1, 3)
);
return $form;
form return回去產生的HTML
abcd
drupal_render產生的HTML
abcd
可以看得出來drupal_render不支援#multiple特性,#default_value好像也不支援...
使用drupal_render(form_process_select($form['test1']));可以產生multiple html
但是這是正確的解法嗎?
Re: Drupal Form的render問題
一個有進行 FORM BUILDER 一連串動作, 一個沒有
Re: Drupal Form的render問題
感謝...我大概了解流程了
關鍵在"FORM BUILDER"...