Я пытаюсь создать таблицу, в которой строка выглядит следующим образом:
|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", которые мешают моей форме работать ...
Итак, есть идея / подсказка, как решить эту проблему? Вероятно, я нахожусь на совершенно неправильном пути ..