【问题标题】:Displaying 'select' elements in a form table在表格中显示“选择”元素
【发布时间】:2010-08-27 05:45:55
【问题描述】:

我在表单中有一个表格。我正在尝试在其中一个表格列中显示“选择”表单元素,但它不显示;它不断在表格之外呈现。但是,如果我将表单元素更改为“复选框”或“收音机”,则显示没有问题。

我是这样渲染的:$output .= theme('table', $header, $rows);

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

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

【问题讨论】:

  • 确实需要查看表单的模板——尤其是表格本身。通常当东西弹出表格时,这意味着一些标签没有被正确关闭
  • 你能发布一些标记吗?我不认为这个问题是 Drupal 特有的,而是与 HTML/CSS 问题有关。正如斯科特所说,HTML 可能不正确。做一个 html 验证,看看它是否提到了关于省略标签的任何内容。
  • 只是一个更新:我没有弄清楚这一点,但我找到了一种更好(更简单)的方法来实现我想要的。我只是一次更新一个记录。我试图模仿此处找到的 drupal 节点列表表单:admin/content/node,但不仅仅是文本框,我想要下拉列表...感谢所有 cmets。

标签: arrays forms drupal drupal-6


【解决方案1】:

看看http://drupal.org/project/elements。它应该可以满足您的需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    • 2016-11-16
    相关资源
    最近更新 更多