Обработчик Drupal Submit не вызывается должным образом в пользовательском модуле

У меня есть этот код для вызова формы, а затем отправить его..

<?php 
// hook_menu
function pricepackages_menu()
{
    $items = array();
    $items['membership/packages'] = array(
        'title' => t('Manage Membership Packages'),
        'page callback' => 'drupal_get_form',
        'page arguments' => array('pricepackages_form'),
       //'access callback' => TRUE,
       'access arguments' => array('access administration pages'),
    );
    return $items;
}
// FORM SHOW HOOK
function pricepackages_form($form, &$form_state)
{
    $form = array();

    $form['packagename'] = array(
        '#type' => 'textfield',
        '#title' => 'Package Name',
        //'attribute' => array('class' => 'package'),
        '#required' => TRUE,
    );
    $form['packageDescp'] = array(
        '#type' => 'textfield',
        '#title' => 'Package Short Description',
        //'attribute' => array('class' => 'package'),
        '#required' => FALSE,
    );
    $form['price'] = array(
        '#type' => 'textfield',
        '#title' => 'Package Price',
        //'attribute' => array('class' => 'package'),
        '#required' => TRUE,
    );
    $form['submit'] = array(
        '#type' => 'submit',
        '#value' => t('Submit'),
    );
    $form['submit'][] = array('package_get_form'=> array());

    return $form;
}

function package_get_form($form, &$form_state)
{
    drupal_set_message('working');
?>
    <script language="javascript">
        alert("aaa");
    </script>
<?php
return; 
    }
?>

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

Помогите мне, пожалуйста...

1 ответ

Эта часть не верна:

$form['submit'][] = array('package_get_form'=> array());

Чтобы добавить обратный вызов, просто напишите:

$form['submit'][] = 'package_get_form';

Вам даже не нужна эта строка, так как API формы предоставляет обратный вызов по умолчанию, добавляющий "_submit" к идентификатору / обратному вызову формы. Для вашего случая:

pricepackages_form_submit()
Другие вопросы по тегам