заполнить форму программно в друпале - PullRequest
0 голосов
/ 23 декабря 2010

Мне нужно заполнить поля формы программно в drupal. Я понимаю, что есть 2 подхода:

  1. с использованием drupal_execute ($ form_item, value, $ form_state)

  2. с использованием form_set_value ($ form_id, $ form_state)

Были бы полезны любые рабочие примеры

Я попробовал следующий код, который дает друпал белый экран смерти

function form_validate($form, &$form_state){
  $form_id ='myform';
  $form_state['values'] = array(
    'name' => 'Test',    
  );
  drupal_execute($form_id, $form_state);  // this statement leads to white screen of death
}

Ответы [ 2 ]

1 голос
/ 27 декабря 2010

Я предполагаю, что вы пытаетесь заполнить поле в форме во время проверки, после того, как пользователь отправит ее?Я предполагаю, что это потому, что вы используете функцию проверки.

Если это так, функция drupal_execute () не требуется, так как форма будет отправлена ​​после того, как она пройдет проверку, несмотря ни на что.Я думаю, что вы хотите, может быть больше похоже на это:

function form_validate($form, &$form_state) {
  $form_state['values']['name'] = 'test'; 
}
0 голосов
/ 25 декабря 2010

Вы должны использовать:

<?php
$form_id = 'mymodule_form_id';
$rendered_form = drupal_get_form($form_id);
print $rendered_form;
?>

См:

http://api.drupal.org/api/drupal/includes--form.inc/function/drupal_get_form/6

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...