Создать форму Drupal в таблице - PullRequest
1 голос
/ 17 ноября 2011

Я пытаюсь создать таблицу, в которой строка выглядит следующим образом:

|Text1|Text2|Button1|

Как только пользователь нажимает на кнопку, я хочу обменять Button1 на буксируемые текстовые поля и другую кнопку ... так что обычный AJAX-запрос. Я пытался реализовать это, не уверен, что это правильный путь, дайте мне знать, если бы я мог сделать это совершенно другим способом: S

Итак, что я уже сделал: В моем hook_menu я ссылаюсь на функцию, которая возвращает данные:

return theme ( 'my_theme_function', array (
                    'running' => true, 
                    'form' => $database->getData ()
            ) );

Что происходит в getData () - Функция: Я создаю форму, используя drupal_get_form (..) .. возвращается из данной формы это:

$data = array (
                    'items' => $finder->getGamesToPlayForm ( $form_state ), 
                    '#title' => 'Title'
            );

$ finder возвращает список элементов, которые я хочу показать в таблице. Так что ничего особенного.

my_theme_function настроена на использование файла-шаблона, в котором я хотел бы показать весь материал. Это выглядит так:

$header = array (
        'Col1', 
        'Col2', 
        '' 
);

$rows = array ();

foreach ( element_children ( $formData ['items'] ) as $gameId ) {
    $row = array ();
    $row [] = drupal_render ( $formData ['items'] [$gameId] ['#col1'] );
    $row [] = drupal_render ( $formData ['items'] [$gameId] ['#col2'] );
    $row [] = drupal_render ( $formData ['items'] [$gameId] ['#form'] );
    $rows [] = $row;
}
$output = theme ( 'table', array (
        'header' => $header, 
        'rows' => $rows 
) );

unset($formData['items']);


$output .= drupal_render_children ( $formData );

print $output

Таким образом, все напечатано правильно. Но нет никаких тегов "form", которые мешают моей форме работать ...

Итак, есть идея / подсказка, как решить эту проблему? Вероятно, я нахожусь на совершенно неправильном пути ..

1 Ответ

0 голосов
/ 28 января 2013

попробуй

'render element' => 'form'

в твоей теме

...