2014-09-04 119 views
0

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

<?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"); 

} ?>

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

回答

1

解决方法是将选项数组从一个函数传递到另一个函数。要使用“form_test_form”和“form_test_form_submit”函数的第二个参数。

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 ... 
} 
+0

感谢@progzy ....我与你it..can请指导我对somenice教程数据retrival从数据库中的Drupal 7做了什么?......我已经做到了这一点与PHP,但同样不工作与Drupal – user1204 2014-09-08 05:41:55

+0

行。请确认答案,如果它适合你。 对于其他问题,请打开一个新的问题:) – progzy 2014-09-08 08:01:54