форма без form_id (Drupal 6.x) - PullRequest
       4

форма без form_id (Drupal 6.x)

0 голосов
/ 24 декабря 2010

Эта форма размещена внутри блока, и она назначена для правой области моего сайта.Форма отображается просто отлично.Но кнопка отправки не работает как задумано - вызвать функцию отправки.Итак, я провел некоторую отладку и обнаружил аномалию, согласно которой нет важных данных - таких как form_id и tokens - drupal обычно вводится в каждую форму.Поскольку я не могу понять причину этого, я здесь для указателей друзей отсюда.Вот выдержка из моего кода -

function mymodule_block($op = 'list', $delta = '', $edit = array()) {

switch ($op) {
    case 'list':
        $blocks['quick_search'] = array(
            'info'       => t('Quick Search'),

        );
    return $blocks; 

    case 'view':
        switch ($delta) {
            case 'quick_search':
                $block['subject'] = t('Quick Search');
                $block['content'] = drupal_get_form("block_quick_search");
            break;        
        }

    return $block;
}


}


function block_quick_search(&$form_state){
$form = array();
.
.
.
    $form['quick_search_submit'] = array(
        '#type' => 'submit',
        '#value' => t('Search'),        
        '#submit' => array('mymodule_quick_search'),
    );                              

    return $form;   

}

function mymodule_quick_search($form, &$form_state){

drupal_goto($base_path,"..............");   
}

Заранее спасибо

Ответы [ 2 ]

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

нет важных данных - таких как form_id и tokens

Это действительно причина того, что отправленные формы не обрабатываются правильно. Проверьте, вызывается ли drupal_prepare_form в вашей форме и правильно ли он добавляет эти элементы. Он вызывается drupal_get_form , если форма не опубликована (и, следовательно, не извлечена из кэша).

Если $form['#token'] и $form['form_id'] добавлены правильно, я подозреваю, что что-то не так с переводом формы в HTML. Используете ли вы какие-либо пользовательские темы для формы?

0 голосов
/ 24 декабря 2010

Попробуйте передать обработчик отправки в основную форму, а не в элементе отправки, например:

$form['#submit'][] = 'mymodule_quick_search';

это должно работать.

...