Обработчик 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()