2011-10-03 20 views
0

的Drupal 7,$輸出顯示我的頁面上字符串「陣列」,我不知道爲什麼,這是代碼:爲什麼這個drupal表單不工作?

它的工作只有這樣:return drupal_get_form('test_exp_form')

但我需要添加HTML和文本到我的$輸出變量,我不能只是返回表單。

function test_page() { 
    $output = '<div>Hello</div>'; 
    $output = drupal_get_form('test_exp_form'); 
    return $output; 
} 

function test_exp_form($form, &$form_stat) { 
    $form = array(); 

    $form['example_textfield'] = array(
     '#type' => 'textfield', 
     '#title' => t('Example Textfield'), 
     '#default_value' => 'some text', 
    ); 

    return $form; 
} 

回答

3

您需要使用render()功能在Drupal 7 drupal_get_form回報 '渲染陣列':

function test_page() { 
    $output = '<div>Hello</div>'; 
    $output .= render(drupal_get_form('test_exp_form')); 
    return $output; 
} 

這裏有一些更多的信息有關渲染陣列在Drupal 7:

Render arrays in Drupal 7

+0

仍然無法正常工作,您可以試試它:/ – Valoda

+0

我已經更新了答案中的代碼,我剛剛測試過它並且它可以工作 – Clive