Drupal 6:如何在创建自定义表单时将多个表单元素保留在一行中?

时间:2012-06-01 08:49:15

标签: forms drupal drupal-6

我创建了一个自定义表单&那里有四个要素。 我想将所有这些元素保持在一行中。怎么做?

我用谷歌搜索并找不到任何相关内容..如果CSS有什么事要做,那么请建议我把DIV放在哪里。

我正在粘贴下面的代码 -

<?php

function taskform_form(&$node, $form_state)
{


  $form['date'] = array(
    '#type' => 'date', 
    '#title' => t('Date'),        
  );

  $form['edproject'] = array(
    '#type' => 'select', 
    '#title' => t('Project'), 

    '#options' => array(
      1 => 'Konnected', 
      2 => 'eLearning', 
      3 => 'Others',
    ),
    '#description' => t('Choose a project'),
  );

  $form['task'] = array(
    '#type' => 'textfield', 
    '#title' => t('Task'), 
    '#size' => 30,
    '#required' => TRUE,
    '#maxlength' => 30,
    '#description' => t('Enter the task'),
  );

  $form['remarks'] = array(
    '#type' => 'textarea', 
    '#title' => t('Remarks'), 
    '#size' => 30,
    '#cols' => 6,
    '#description' => t('Enter remarks (If any).'),
  );

  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Add Task'),
    '#submit' => array('taskform_form_submit'),
  );
  return $form;

}

2 个答案:

答案 0 :(得分:0)

您可以使用表单元素的前缀和后缀属性,并将其显示在一行中。如果它对你有用,请参阅下面的代码。

function taskform_form(&$node, $form_state)
{
  $form['date'] = array(
    '#type' => 'date', 
    '#title' => t('Date'),
    '#prefix' => '<table><tr><td>',
    '#suffix' => '</td>',   
  );

  $form['edproject'] = array(
    '#type' => 'select', 
    '#title' => t('Project'), 

    '#options' => array(
      1 => 'Konnected', 
      2 => 'eLearning', 
      3 => 'Others',
    ),
    '#description' => t('Choose a project'),
    '#prefix' => '<td>',
    '#suffix' => '</td>',
  );

  $form['task'] = array(
    '#type' => 'textfield', 
    '#title' => t('Task'), 
    '#size' => 30,
    '#required' => TRUE,
    '#maxlength' => 30,
    '#description' => t('Enter the task'),
    '#prefix' => '<td>',
    '#suffix' => '</td>',
  );

  $form['remarks'] = array(
    '#type' => 'textarea', 
    '#title' => t('Remarks'), 
    '#size' => 30,
    '#cols' => 6,
    '#description' => t('Enter remarks (If any).'),
    '#prefix' => '<td>',
    '#suffix' => '</td></tr></table>',
  );

  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Add Task'),
    '#submit' => array('taskform_form_submit'),
  );

  return $form;
}

答案 1 :(得分:0)

或者,您可以使用前缀和后缀将整个元素包装在div中,并将div放在CSS中。这样,您可以将结构信息与渲染分开。

另一种选择是编写具有魔力的自定义主题函数。但是,我会选择前缀后缀解决方案,因为它在短期内更容易维护。

查看this quick tutorial,主题表单部分介绍了您的选项。