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'];
}
填写表单时是否会动态填充字段?我认为计算字段是隐藏的,并保存在数据库中。。。。