Drupal7,如何基于其他两个字段的总和动态填充字段?

Drupal7,如何基于其他两个字段的总和动态填充字段?,drupal,drupal-7,drupal-forms,drupal-ajax,Drupal,Drupal 7,Drupal Forms,Drupal Ajax,我有两个领域 $form["field_num_males"] $form["field_num_females"] 在提交之前,我需要动态地填充字段$form[“field\u gender\u total”]和它们的总和(AJAX) 如何使用Drupal 7实现这一点 谢谢 试试这个模块 Computed Field是一个非常强大的CCK Field模块,可用于添加 自定义内容类型的“计算字段”。这些计算字段 使用通过PHP代码定义的值填充。你可以画画 关于Drupal可用的任何内容,包括

我有两个领域

$form["field_num_males"]
$form["field_num_females"]
在提交之前,我需要动态地填充字段$form[“field\u gender\u total”]和它们的总和(AJAX)

如何使用Drupal 7实现这一点

谢谢

试试这个模块

Computed Field是一个非常强大的CCK Field模块,可用于添加 自定义内容类型的“计算字段”。这些计算字段 使用通过PHP代码定义的值填充。你可以画画 关于Drupal可用的任何内容,包括其他字段


是的,它可以通过Ajax实现。更新文本字段时,以下代码将自动更新总计:

function gender_total_menu()
{
    $items = array();

    $items['test'] = array(
        'title'           => Gender total,
        'page callback'   => 'drupal_get_form',
        'page arguments'  => array('gender_total_form'),
        'access callback' => array(TRUE),
        'type'            => MENU_CALLBACK,
    );

    return $items;
}

function gender_total_form($form, &$form_state)
{
    $total = 0;

    if (array_key_exists('values', $form_state) &&
        array_key_exists('field_num_males', $form_state['values']) &&
        array_key_exists('field_num_females', $form_state['values'])
    ) {
        $total = $form_state['values']['field_num_males'] + $form_state['values']['field_num_females'];
    }

    $form = array();

    $form["field_num_males"] = array(
        '#type'          => 'textfield',
        '#title'         => t("Number of males"),
        '#default_value' => 0,
        '#ajax' => array(
            'callback' => 'ajax_update_callback',
            'wrapper'  => 'wrapper',
        ),
    );

    $form["field_num_females"] = array(
        '#type'          => 'textfield',
        '#title'         => t("Number of females"),
        '#default_value' => 0,
        '#ajax' => array(
            'callback' => 'ajax_update_callback',
            'wrapper'  => 'wrapper',
        ),
    );

    $form['total'] = array(
        '#markup' => '<p> Total: ' . $total . '</p>',
        '#prefix' => '<div id="wrapper">',
        '#suffix' => '</div>',
    );

    return $form;
}

function ajax_update_callback($form, $form_state)
{
    return $form['total'];
}
function-gender\u-total\u菜单()
{
$items=array();
$items['test']=数组(
“标题”=>性别总数,
“页面回调”=>“drupal获取表单”,
“页面参数”=>array('gender\u total\u form'),
“访问回调”=>array(TRUE),
“键入”=>菜单\u回调,
);
退回$items;
}
函数性别\总计\形式($form,&$form\状态)
{
$total=0;
如果(数组\键\存在('values',$form\状态)&&
数组\u键\u存在('field\u num\u males',$form\u state['values']))&&
数组\u键\u存在('field\u num\u females',$form\u state['values']))
) {
$total=$form_state['values']['field_num_MENALES']+$form_state['values']['field_num_MENALES'];
}
$form=array();
$form[“字段数量”]=数组(
“#键入”=>“文本字段”,
“#title”=>t(“男性人数”),
“#默认_值”=>0,
“#ajax”=>数组(
'callback'=>'ajax\u update\u callback',
“包装器”=>“包装器”,
),
);
$form[“字段数量”]=数组(
“#键入”=>“文本字段”,
“#title”=>t(“女性人数”),
“#默认_值”=>0,
“#ajax”=>数组(
'callback'=>'ajax\u update\u callback',
“包装器”=>“包装器”,
),
);
$form['total']=数组(
“#markup'=>”Total:“.$Total.”

“, “#前缀”=>”, “#后缀”=>”, ); 返回$表格; } 函数ajax\u update\u callback($form,$form\u state) { 返回$form['total']; }
填写表单时是否会动态填充字段?我认为计算字段是隐藏的,并保存在数据库中。。。。