drupal表单实例:生成表单、提交、验证、写入数据库步骤转自www.cmsns.com
-  版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 
 http://097633.blogbus.com/logs/31448364.htmlDrupal表单很强大,在自行扩展中经常会用到,下面就是一个简单的form代码,从表单定义,到验证和提交。 <?php
 //test_form函数中定义表单,drupal定义了一些常用格式,文本、下拉、单选、多选、上传等。
 function test_form(&$form_state){//传递表单参数
 $form['title'] = array(
 '#type'=> 'textfield',
 '#title' => '主题',
 '#default_value' => 11111,//默认值
 '#maxlength' => 128,//长度
 );
 $form['body'] = array(
 '#type' => 'textarea',
 '#title' => '内容',
 '#default_value' => '中华人民共和国',
 '#cols' => 40,
 '#rows' => 6
 );
 $form['select'] = array(
 '#type' => 'radios',
 '#title' => '网站协议',
 '#default_value' => 1,
 '#options' => array('我同意', '我不同意'),//单选项,若不指定值,则自动从0开始计算: 0 -> 我同意, 1 -> 我不同意。
 );
 $form['#validate'][] = 'test_form_validate';//调用验证函数
 $form['submit'] = array(
 '#type' => 'submit',
 '#value' => '提交',
 '#submit' => array('test_form_submit'),//调用提交函数
 );
 return $form;
 }
 function test_form_validate($form, &$form_state) {//接收表单参数
 //验证函数
 //利用$form_state来接收表单传递过来的值,$form_state['values']['select']等于$form['select'].
 if($form_state['values']['select']){
 form_set_error('select', '你必须同意网站协议。');
 }
 if($form_state['values']['title'] == '' && $form_state['values']['body'] == '' ){
 form_set_error('title', '标题和正文不能为空。');
 }
 }
 function test_form_submit($form, &$form_state) {//接收表单参数
 //利用$form_state来接收表单传递过来的值。执行写入数据库,或者其它操作
 db_query('INSERT INTO {test} (title, body) VALUES (%d, %d)', $form_state['values']['title'], $form_state['values']['body']);
 }
 ?>Drupal调用表单有两种方法,第一种是在页面内直接调用: <?php
 print drupal_get_form('test_form');
 ?>另一种是在menu里通过url调用,大致如下: <?php
 $items['test/form'] = array(
 'title' => '表单测试',
 'page callback' => 'drupal_get_form',
 'page arguments' => array('test_form'),
 'type' => MENU_LOCAL_TASK,
 );
 ?>在表单调用里也可以传递参数,比如: <?php
 print drupal_get_form('test_form', $node);
 //表单函数上就可以接收到了。
 function test_form(&$form_state, $node){//
 //.......
 ?>
 
                    
                 
                
            
         
 浙公网安备 33010602011771号
浙公网安备 33010602011771号