私は動的に提出(AJAX)の前に、それらの合計で、フィールド$フォーム[「field_gender_totalを」]移入する必要がある2つのフィールドDrupal 7、他の2つのフィールドの合計に基づいてフィールドを動的に取り込む方法は?
$form["field_num_males"]
$form["field_num_females"]
を持っています。
これはDrupal 7でどのように行うことができますか?
ありがとうございます!
私は動的に提出(AJAX)の前に、それらの合計で、フィールド$フォーム[「field_gender_totalを」]移入する必要がある2つのフィールドDrupal 7、他の2つのフィールドの合計に基づいてフィールドを動的に取り込む方法は?
$form["field_num_males"]
$form["field_num_females"]
を持っています。
これはDrupal 7でどのように行うことができますか?
ありがとうございます!
はい、これは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'];
}
Computed Fieldモジュール
計算フィールドは、あなたのコンテンツタイプに カスタム「計算フィールド」を追加することができます非常に強力なCCKフィールドモジュールです。試してみてくださいこれらの計算フィールド には、PHPコードで定義した値が入力されます。あなたは他のフィールドも含めて、 をDrupalが利用できるものに描きます。
フォームに入力中にフィールドに入力されますか?私は計算されたフィールドが隠されていると思うし、データベースに保存.... –