在表单表中显示“select”元素

时间:2010-08-27 05:45:56

标签: arrays forms drupal drupal-6

我在表格中有一张桌子。我试图在其中一个表列中显示“选择”表单元素,但它不显示;它不断在桌子外呈现。但是,如果我将表单元素更改为“复选框”或“无线电”,则显示没有问题。

我这样呈现:$output .= theme('table', $header, $rows);

其中$header是表标题的数组,$rows是数组数组(表行)。

行数组的构建方式如下:

$row[] = drupal_render($form['fname'][$key]);
$row[] = drupal_render($form['lname'][$key]);
$row[] = drupal_render($form['days'][$key]);
$rows[] = $row;

我想要的是最后一行('天')是一个选择框而不是复选框,但是当我将其更改为选择时,它将显示在表格之外。

有什么想法吗?


这是我的主题功能:

function theme_client_admin_nodes($form) {
  $has_posts = isset($form['fname']) && is_array($form['fname']);
  $header = array(t('First Name'), t('Last Name'), t('Packages'), t('Day'));

  $output = '';

  if ($has_posts) {
    foreach (element_children($form['fname']) as $key) {
      $row = array();
      $row[] = drupal_render($form['fname'][$key]);
      $row[] = drupal_render($form['lname'][$key]);
      $row[] = drupal_render($form['packages'][$key]);
      $row[] = drupal_render($form['days'][$key]);
      // $row[] = drupal_render($form['nodes'][$key]);
      $rows[] = $row;
    }
  }
  else {
    $rows[] = array(array('data' => t('No posts available...'), 'colspan' => '4'));
  }

  $output .= theme('table', $header, $rows);
  if ($form['pager']['#value']) {
    $output .= drupal_render($form['pager']);
  }

  $output .= drupal_render($form);

  return $output;
}

1 个答案:

答案 0 :(得分:1)

看看http://drupal.org/project/elements。它应该做你想要的。