我正在为Drupal 7开发简单的自定义模块,该模块采用两个数值,并在同一页面上提交显示两个值的总和。
我已经准备好了表格,但是没有完成,但是因为我想在用户提交表单时调用calculateFunction()函数,需要参数和总和值...
name = form_test
description = Small module which demo how to create input form in custom module.
core = 7.x
<?php
function form_test_menu()
{
$items['formtest'] = array(
'title' => 'Form Test',
'page callback' => 'drupal_get_form',
'page arguments' => array('form_test_form'),
'access callback' => TRUE,
);
return $items;
}
function form_test_form($form,&$form_submit) {
$form['firstname'] = array(
'#title' => t('First Number'),
'#type' => 'textfield',
'#required' => TRUE,
);
$form['lastname'] = array(
'#title' => t('Second Number'),
'#type' => 'textfield',
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Run Function'));
calculateFunction($form);
return $form;
}
function calculateFunction()
{
echo "sum of two numbers.....";
}
?>
答案 0 :(得分:0)
不是直接调用calculateFuction(),而是需要将$ form ['#submit']设置为一个数组,其中包含您在提交表单时要调用的函数的名称。
$ form ['submit']只创建提交表单元素。 #submit设置要提交的回调函数。
您也可以选择设置$ form ['#validify']来验证提交的数据。
请参阅Drupal.org上的Form API tutorial
提交回调可能如下所示:
/**
* FAPI Callback for form_test_form().
*/
function calculateFunction($form, &$form_state) {
$values = $form_state['values'];
$sum = $values['first_name'] + $values['last_name'];
drupal_set_message('The sum is ' . $sum);
}