0

我创建了一个自定义表单,其中有四个元素。我想将所有这些元素放在一行中。怎么做 ?

我用谷歌搜索了它,找不到任何相关的东西..如果 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;

}
4

2 回答 2

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;
}
于 2012-06-01T10:17:54.633 回答
0

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

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

查看这个快速教程,主题表单部分描述了您的选项。

于 2012-06-02T21:09:43.917 回答