提交表单上的调用函数并显示两个值的总和

时间:2014-06-24 13:10:01

标签: javascript php drupal-7 drupal-forms

我正在为Drupal 7开发简单的自定义模块,该模块采用两个数值,并在同一页面上提交显示两个值的总和。

我已经准备好了表格,但是没有完成,但是因为我想在用户提交表单时调用calculateFunction()函数,需要参数和总和值...

信息

name = form_test
description = Small module which demo how to create input form in custom module.
core = 7.x

模块php

<?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.....";
}
?>

1 个答案:

答案 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);
}