Простейший калькулятор на AJAX для Drupal 7
Основные изменения по сравнению с калькулятором для Drupal 6 — в hook_menu не нужно регистрировать ajax кэлбаки, плюс в них передаётся состояние формы (значения полей), что очень облегчает жизнь:
/**
* Реализация hook_menu()
*/
function simplecalc_menu() {
$items['calc'] = array(
'title' => 'Simple calc',
'page callback' => 'drupal_get_form',
'page arguments' => array('simplecalc_form'),
'access callback' => true,
);
return $items;
}
/**
* Описание формы
*/
function simplecalc_form($form, &$form_state) {
$form['wrapper'] = array(
'#prefix' => '<div class="container-inline">',
'#suffix' => '</div>',
);
$form['wrapper']['number1'] = array(
'#type' => 'textfield',
'#size' => 3,
'#suffix' => '+',
);
$form['wrapper']['number2'] = array(
'#type' => 'textfield',
'#size' => 3,
'#suffix' => '= ',
);
$form['wrapper']['answer'] = array(
'#prefix' => '<div id="answer">',
'#suffix' => '</div>',
'#markup' => '?',
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Посчитать',
'#ajax' => array(
'callback' => 'simplecalc_callback',
'wrapper' => 'answer',
'method' => 'html',
),
);
return $form;
}
/**
* AJAX callback
*/
function simplecalc_callback($form, $form_state) {
return strval($form_state['values']['number1'] + $form_state['values']['number2']);
}
Написанное актуально для
Drupal 7.x
Комментарии:
Нету комментариев для вывода...