【问题标题】:Insert input into a drupal form programmatically以编程方式将输入插入到 Drupal 表单中
【发布时间】:2010-12-17 05:01:25
【问题描述】:

如何在 drupal 表单 API 中以编程方式填充输入字段? 让我说明一下,考虑以下示例

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);
}

在这里,当提交事件发生时,我没有得到填充的值,而是在屏幕上看到了白色的死机。我的语法有问题吗??

【问题讨论】:

    标签: api drupal forms


    【解决方案1】:

    这是使用 drupal_execute 的正确方法。但是,您处理该表单的方式还有其他问题:尝试将提交和验证功能附加到表单。当您这样做时,您还需要将 drupal_execute 移出提交功能(这可能导致您现在遇到的问题)。如果需要保存数据,则需要使用 DB 抽象层、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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-07
      • 1970-01-01
      • 2014-03-19
      • 2014-03-03
      • 1970-01-01
      • 2013-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多