Отображение элементов select в таблице формы - PullRequest
2 голосов
/ 27 августа 2010

У меня есть таблица внутри формы. Я пытаюсь отобразить элемент формы 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;
}

1 Ответ

1 голос
/ 01 марта 2011

Посмотрите на http://drupal.org/project/elements. Он должен делать то, что вы ищете.

...