2010-08-27 42 views
2

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

我呈现这样的:$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; 
} 
+3

确实需要查看窗体的模板 - 特别是表格本身。通常当表格弹出时表示一些标签没有正确关闭 – 2010-08-27 05:50:19

+1

您可以发布一些标记吗?我不认为这个问题是Drupal特定的,但与HTML/CSS问题有关。 正如斯科特所说的HTML可能不正确。做一个html验证,看看它是否提及任何关于省略标签。 – Keyo 2010-08-27 05:52:36

+0

只是一个更新:我没有弄清楚,但我找到了一个更好(更简单)的方式来实现我想要的。我只是每次更新一条记录。我试图模仿在这里找到的drupal节点列表表单:admin/content/node,但不仅仅是文本框,我想要drop drop ...感谢所有的评论。 – berto77 2010-09-07 20:35:01

回答