кнопка отправки не работает в функции темы

Я создал перетаскиваемую таблицу и добавил под ней кнопку отправки. Я могу просмотреть кнопку отправки, но обработчик отправки не работает. Ниже приведен код.

function form_content_reorder($form, &$form_state)
{    
$form = array();
$form['items'] = array();
$form['items']['#tree'] = TRUE;
$form['#theme'] = 'usercontentranking_reorder_form'; 
$form['name'] = array(
 '#type' => 'item',
 '#markup' => 'Hello  '.get_genderval($user_data['gender']).$user_data['user_name'],);
$form['submit'] = array(
 '#type' => 'submit',
 '#value' => t('Save Preferences'),
 '#submit' => array('user_content_ranking_save'),);
 return $form;
 }

function usercontentranking_theme($existing, $type, $theme, $path) {
$themes = array(
'usercontentranking_reorder_form' => array(
  'render element' => 'element'
),
);
return $themes;
}

function theme_usercontentranking_reorder_form($vars) {
$element = $vars['element'];
drupal_add_tabledrag('draggable_table', 'order', 'sibling', 'weight-group');
$header = array(
 'label' => t(''), 
 'label2' => t(''),
 'weight' => t('Weight'),
 'operations' => t('Operations'),
); 
$rows = array();

foreach (element_children($element['items']) as $key) {
$row = array();
$row['data'] = array();
$row['data'][] = drupal_render($element['items'][$key]['title']);
$row['data'][] = drupal_render($element['items'][$key]['user_fields']);
$row['data'][] = drupal_render($element['items'][$key]['weight']);
$row['data'][] = drupal_render($element['items'][$key]['operation']);
$row['class'] = array('draggable');
$rows[] = $row;

$themes = drupal_render($element['name']);

$themes .=theme('table', array(
  'header' => $header, 
  'rows' => $rows,
  'attributes' => array('id' => 'draggable_table'),
));

$themes .= drupal_render($element['submit']);

return $themes;
}

function user_content_ranking_save($form, &$form_state)
{
  print "text";
}

Строка $themes .= drupal_render($element['submit']); может отображать кнопку, но функция user_content_ranking_save не вызывается. Пожалуйста, помогите мне в этом.


person simple user    schedule 16.03.2013    source источник


Ответы (1)


Добавляем эти три строки:

$themes .= drupal_render($element['form_id']); 
$themes .= drupal_render($element['form_build_id']);
$themes .= drupal_render($element['form_token']);

до:

$themes .= drupal_render($element['submit']); 

решил проблему.

person simple user    schedule 17.03.2013