2010-08-27 43 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

回答