У меня есть эта форма в Drupal, которая содержит два средства выбора даты и два текстовых поля. Мне нужно написать функцию, которая обновляет значения в двух текстовых полях. Итак, в текстовое поле first_result мне нужно добавить 35 дней, а в текстовое поле second_result мне нужно добавить 3 месяца и установить эти значения в двух текстовых полях, а в datepicker due_date мне нужно обновить это поле, чтобы добавить один год и 45 дней. :
Мой код:
<?php
drupal_add_js(drupal_get_path('module', 'Date') .'/script.js');
function Pregnancy_menu() {
$items['form/Date'] = array(
'title' => 'Date Calculator',
'page callback' => 'drupal_get_form',
'page arguments' => array('Date_form'),
'access callback' => TRUE,
);
return $items;
}
function Date_form($form_type) {
drupal_add_js(drupal_get_path('module', 'Date') .'/script.js');
$form['First_Period'] = array(
'#type' => 'date_popup',
'#title' => 'Date of your last menstrual period',
'#date_format' => 'Y-m-d',
'#date_text_parts' => array('year'),
'#date_increment' => 30,
'#date_year_range' => '-1:0',
'#default_value' => date(Y) . date(M) . date(D),
);
$form['Calculate_Forward'] = array(
'#type' => 'button',
'#value' => t('Calculate Forward'),
'#attributes' => array('onclick' => "testing()"),
);
$form['Reset_form'] = array(
'#name' => 'clear',
'#type' => 'button',
'#value' => t('Reset this Form'),
'#attributes' => array('onclick' => 'this.form.reset(); return false;'),
);
$form['First_result'] = array(
'#type' => 'textfield',
'#title' => t('first result'),
'#prefix' => '<div style="float:left;">',
'#suffix' => '</div>',
'#default_value' => 'Hello',
);
$form['Second_result'] = array(
'#type' => 'textfield',
'#title' => t('second result'),
'#prefix' => '<div style="float:left;">',
'#suffix' => '</div>',
);
$form['Due_Date'] = array(
'#type' => 'date_popup',
'#title' => 'Estimated Due Date',
'#date_format' => 'Y-m-d',
'#date_text_parts' => array('year'),
'#date_increment' => 30,
'#date_year_range' => '+1:+1',
'#default_value' => date(Y) . date(M) . date(D),
);
return $form;
}
// функция javascript script.js
var testing()=function()
{
//how to do the calculation here
}