Форма Drupal не отправляется - PullRequest
       13

Форма Drupal не отправляется

0 голосов
/ 07 сентября 2011

Привет сообщество Stackoverflow,

Я создаю систему голосования со многими категориями, используя FormAPI.

Я создал форму с drupal_get_form () и сохранил HTML-разметку в текстовой областиCCK поле.Я также создал функцию отправки, которая работает с базой данных.

Однако, когда я отображаю узел, форма может быть построена, однако функция отправки не вызывается.Я не могу понять источник проблемы.Спасибо за любые советы, спасибо!

* РЕДАКТИРОВАТЬ:

Определяет форму:

function judges_nodeapi(&$node, $op, $teaser, $page) { 
switch ($op) {
    case 'view':

        ...

        $node->field_judging_form[0]['value']=drupal_get_form('judges_entry',($node));

        node_save($node);
}
}



  function judges_entry($form_state, $node){
    ...
    return $form;
}

Затем я просто использую CCK для отображения формы в виде простого текста.

1 Ответ

2 голосов
/ 07 сентября 2011

Каждый раз, когда вы вызываете drupal_get_form(), генерируется новый токен (по соображениям безопасности), поэтому вы не можете статически визуализировать форму в поле и ожидать, что она когда-нибудь сработает.

Что вам нужно сделать, так это получать свежую версию формы каждый раз, когда вы ее отображаете, реализуя hook_preprocess_node и затем выводя форму в файл шаблона. Примерно так в вашем файле модуля:

function MYMODULE_preprocess_node(&$vars) {
  $vars['my_form'] = drupal_get_form('judges_entry',($vars['node']));
}

Затем в вашем файле шаблона (node.tpl.php):

echo $my_form;

Надеюсь, что поможет

...