Drupal中的表单提交

时间:2014-09-04 08:06:44

标签: drupal-7 drupal-forms

我使用dupal API在drupal中为表单创建了一个自定义模块,并在我的数据库中创建了一个表 我想要的是保存下拉框的值而不是它的索引到数据库...我的.module文件是:

<?php
function form_test_menu() {
$items['formtest'] = array(
    'title' => 'Form Test',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('form_test_form'),
    'access callback' => TRUE,
);
return $items;

}

function form_test_form($form,&$form_submit) {
$form['name'] = array(
    '#title' => t('Name'),
    '#type' => 'textfield',
    '#required' => TRUE,
);
$form['college'] = array(
    '#title' => t('College/University'),
    '#type' => 'textfield',
    '#required' => TRUE,
);
$form['education'] = array(
    '#title' => t('Education'),
    '#type' => 'select',
    '#description' => 'Select your higher education .',
    '#options' => array(t('--- SELECT ---'), t('B.tech'), t('MCA'), t('MBA'),t('Graduate')),
    '#required' => TRUE,
);
$form['percentage'] = array(
    '#title' => t('Percentage/CGPA'),
    '#type' => 'textfield',
    '#required' => TRUE,
);
$form['application'] = array(
    '#title' => t('Job Applied'),
    '#type' => 'select',
    '#options' => array(t('---select---'),t('Web Developer'),t('Web Designer'),t('SEO'),t('Marketing')),
    '#required' => TRUE,
);


$form['submit'] = array(
    '#value' => 'Submit',
    '#type' => 'submit',
);
return $form;

}

function form_test_form_submit($form, $form_state) {
global $user;
// Here u can insert Your custom form values into your custom table.
db_insert('drupal')
    ->fields(array(
        'name' => $form_state['values']['name'],
        'college' => $form_state['values']['college'],
        'education' => $form_state['values']['education'],
        'percentage' => $form_state['values']['percentage'],
        'application' => $form_state['values']['application'],

    ))->execute();
drupal_set_message("successfully saved data");

} ?&GT;

所有都在一个文件(.module)....任何帮助将不胜感激。 谢谢。

1 个答案:

答案 0 :(得分:1)

解决方案是将options数组从一个函数传递到另一个函数。要实现这一点,请使用&#34; form_test_form&#34;的第二个参数。和&#34; form_test_form_submit&#34;功能

function form_test_form($form,&$form_submit) {
  $form_submit['myoptions'] = array(' select', 'option1' .....
}

然后

function form_test_form_submit($form,&$form_state) {    
 $myoptions = $form_state['myoptions']; etc ...
}