2010-12-17 78 views
1

如何在drupal表單API中以編程方式填充輸入字段? 讓我說明,考慮下面的例子以編程方式將輸入插入到drupal表單

function form(){ 
return drupal_get_form('myform'); 
} 
function myform($form_state){ 
$form['name'] = array(
'#type' => 'textfield', 
'$title' => 'Name: ', 
); 
$form['submit'] = array(
'#type' => 'submit', 
'#value' => 'Save', 
); 
return $form; 
} 
function myform_submit($form,&$form_state){ 
$form_id = 'myform'; 
$form_state['values']['name'] = 'Hello World'; 
drupal_execute($form_id,$form_state); 
} 

這裏,當提交事件發生,而不是讓填充值,我得到的死亡白色空白屏幕在屏幕上。我的語法有問題嗎?

回答

0

這是使用drupal_execute的正確方法。但是,您處理該表單的方式還存在其他問題:嘗試將提交和驗證功能附加到表單。當你這樣做的時候,你還需要將drupal_execute移出submit函數(這可能會導致你現在遇到的問題)。如果您需要保存數據,則需要使用數據庫抽象層drupal_write_record或其中一個現有的鉤子。

$form_state = array(
    'submitted' => true, 
    'values' => array(
    'name' => 'Hello World', 
    'op' => t('Save'), 
    'submit' => t('Save'), 
    'form_id' => 'myform', 
), 
); 

drupal_execute('myform', $form_state); 
相關問題