【发布时间】: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