包含在页面或块示例中的基本自定义表单
简单的表单,验证和提交功能,以创建邮件列表功能。然后,这可以应用于基本页面或基本块示例。
假设你在 drupal 数据库中创建了一个名为’mailing_list’的表,其中包含字段的名字,姓氏和电子邮件地址。
有关 Form API 和其他字段选项的其他信息: https : //api.drupal.org/api/drupal/developer!topics!forms_api_reference.html/7.x/
function custom_module_form($form, &$form_state) {
$form['first_name'] = array (
'#type' => 'textfield',
'#title' => 'First Name',
'#required' => TRUE,
);
$form['last_name'] = array (
'#type' => 'textfield',
'#title' => 'Last Name',
'#required' => TRUE,
);
$form['email'] = array (
'#type' => 'textfield',
'#title' => 'First Name',
'#required' => TRUE,
);
return $form;
}
function custom_module_form_validate($form, &$form_state) {
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
form_set_error('email', t('Please provide a valid email address.'));
}
}
function custom_module_form_submit($form, &$form_state) {
//Useful function for just getting the submitted form values
form_state_values_clean($form_state);
//Save time later by assigning the form values to variables.
$first_name = $form_state['values']['first_name'];
$last_name = $form_state['values']['last_name'];
$email = $form_state['values']['email'];
//Insert the submitted data to the mailing_list database table.
db_insert('mailing_list')
->fields(array(
'first name' => $first_name,
'last name' => $last_name,
'email' => $email,
))
->execute();
//Set a thank you message.
drupal_set_message('Thank you for subscribing to our mailing list!');
//drupal_goto() could be used here to redirect to another page or omitted to reload the same page.
//If used, drupal_goto() must come AFTER drupal_set_message() for the message to be displayed on the new page.
}