`

from表单的简单练习

 
阅读更多
function my_form_menu() {
   $items['my/%/product'] = array(
    'title' => 'myproduct', 
    'page callback' = > 'productlist',
    'page arguments' => array(1),
    );
  return $items;
}

function productlist($arg){

  $form = array();
  $form = drupal_get_form('my_form');
  if (!empty($arg) {
    # code...
    if ($arg="all") {
      # code...
      $form+=drupal_get_from('all_product'); //
    }
  }
//公用一个submit
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => 'Submit',
    '#validate' => array('my_form_validate'),
    '#submit' => array('my_form_submit'),
 
  );
  return $form;
}

function my_form($form,&$form_state){

	$form_default_values = variable_get('my_form','');

	$default_value = array();
 
  if(!empty($form_default_values))
  {
    print_r("expression");

    foreach ($form_default_values as $key => $value) {
    
      $default_value[$key] = isset($form_state['values'][$key]) ? $form_state['values'][$key] : (isset($form_default_values[$key]) ? $form_default_values[$key] : '');
    } 

  }

	$form['name'] = array(
    '#type' => 'textfield',
    '#title' => t('name'),
    '#description' => t('name must !!'),
    '#default_value'=> isset($default_value['name']) ? $default_value['name'] : '',
    '#required' => TRUE,
  );

  $form['cardtype'] = array(
    '#type' => 'checkboxes',
    '#options' => array(
      'sfz'   => t('Shenfengzheng'),
      'psc' => t('huzhao'),
    ),
    '#title' => t('cardtype'),
    '#default_value'=> isset($default_value['cardtype']) ? $default_value['cardtype'] : '',

  );


  $form['shenfenzheng'] = array(
    '#type' => 'textfield',
    '#title' => t('shengfenzheng'),
    '#states' => array(
      'visible' => array(   // action to take.
        ':input[name="cardtype[sfz]"]' => array('checked'=> TRUE),//当上级类型是checkboxes 时,这边用checked(true/false),
      ),
    ),
    '#default_value'=>isset($default_value['shenfenzheng']) ? $default_value['shenfenzheng'] : '',

  );

  $form['psc'] = array(
    '#type' => 'textfield',
    '#title' => t('huzhao'),
    '#states' => array(
      'visible' => array(   // action to take.
        ':input[name="cardtype[psc]"]' => array('checked' => TRUE),//当上级类型是checkboxes 时,这边用checked (true/false),
      ),
    ),
   '#default_value'=>isset($default_value['psc']) ? $default_value['psc'] : '',
   );

  $form['sextype'] = array(
    '#type' => 'radios',
    '#options' => array(
      'man'   => t('man'),
      'woman' => t('woman'),
    ),
    '#title' => t('sex'),
    '#default_value'=>isset($default_value['sextype']) ? $default_value['sextype'] : '',
    );

  $form['man'] = array(
    '#type' => 'fieldset',
    '#title' => t('man'),
    '#states' => array(
      'visible' => array(   // action to take.
        ':input[name="sextype"]' => array('value' => 'man'),
      ),
    ),
  );

  // High school information.
  $form['man']['dianying'] = array(
    '#type' => 'textfield',
    '#title' => t('dianying'),
    '#states' => array(
      'visible' => array(   // action to take.
        ':input[name="sextype"]' => array('value' => 'man'),
      ),
    ),
    '#default_value'=>isset($default_value['dianying']) ? $default_value['dianying'] : '',
  );
   $form['man']['yundong'] = array(
    '#type' => 'checkboxes',
    '#options' => array(
      'zq'   => t('zuqiu'),
      'lq' => t('lanqiu'),
      ),
    '#title' => t('yundong'),
    '#states' => array(
      'visible' => array(   // action to take.
        ':input[name="sextype"]' => array('value' => 'man'),
      ),
    ),
    '#default_value'=>isset($default_value['yundong']) ? $default_value['yundong'] : '',
  );

  $form['woman'] = array(
    '#type' => 'fieldset',
    '#title' => t('woman'),
    '#states' => array(
      'visible' => array(   // action to take.
        ':input[name="sextype"]' => array('value' => 'woman'),
      ),
    ),

  );
  //#field_prefix, #field_suffix
    $form['woman']['huaxiao'] = array(
    '#type' => 'select',
    '#options' => (array(t('500'), t('1000'),t('5000'))),
    '#field_suffix'=>'元',
    '#title' => t('woman'),
    '#states' => array(
      'visible' => array(   // action to take.
        ':input[name="sextype"]' => array('value' => 'woman'),
      ),
    ),
    '#default_value'=>isset($default_value['huaxiao']) ? $default_value['huaxiao'] : '',
  );

    $form['woman']['lixiang'] = array(
    '#type' => 'textarea',
    '#title' => t('lixiang'),
    '#states' => array(
      'visible' => array(   // action to take.
        ':input[name="sextype"]' => array('value' => 'woman'),
      ),
    ),
    '#default_value'=>isset($default_value['lixiang']) ? $default_value['lixiang'] : '',
  );
//表单元素提交图片按钮
  $form['image_submit'] = array(
    '#type' => 'image_button',  
  //图片按钮特有的#src属性,
    '#src' => drupal_get_path('module','contactus').'/images/button1-1.jpg',
    '#executes_submit_callback' => true,  //提交时是否执行回调函数,(false不执行,true执行)
  //使用这个按钮提交时,对应的提交处理函数为contactus_confirm_form_back
    '#submit' => array('contactus_confirm_form_back'), 
  //表单元素添加两个属性,onmouseout、onmouseover,为了在鼠标移到按钮上时,显示不同的图片效果
    '#attributes' =>array(
      'onmouseout' => "this.src='".base_path().drupal_get_path('module','mytest')."/images/button1-1.jpg'",
      'onmouseover' => "this.src='".base_path().drupal_get_path('module','mytest')."/images/button1-2.jpg'",
    ),  
  //为了便于控制image_button的外观,我们使用#prefix、#suffix为其添加了一个带有ID的div
    '#prefix' => '<div id="image-submit">',
    '#suffix' => '</div>',
  );
  return $form;
}
/**
 * 返回按钮对应的提交函数
 */
function contactus_confirm_form_back($form, &$form_state){
  //简单的重定向到首页
 $form_state['redirect'] = '<front>';
}
function my_form_validate($form, &$form_state) {
  dpm($form_state);
  

  $sfz=$form_state['values']['shenfenzheng'];
  $psc=$form_state['values']['psc'];
  $cardtype=$form_state['values']['cardtype'];


    if($cardtype['psc']==0)
    {
      $psc='';
    }
    if($cardtype['sfz']==0)
    {
      $sfz='';
    }  

}


function my_form_submit($form, &$form_state) {
  $myform = array(
    'name'=>$form_state['values']['name'],
    'cardtye'=>$form_state['values']['cardtype'] ,
    'shenfenzheng'=>$form_state['values']['shenfenzheng'],
    'dianying'=>$form_state['values']['dianying'],
    'psc'=>$form_state['values']['psc'],
    'sextype'=>$form_state['values']['sextype'],
    'yundong'=>$form_state['values']['yundong'],
    'huaxiao'=>$form_state['values']['huaxiao'],
    'lixiang'=>$form_state['values']['lixiang'],
  );
  variable_set('my_form',$myform);
}

 

分享到:
评论

相关推荐

    exercise-html5-form:在一个实际项目中练习使用HTML5输入进行验证,这是您需要了解的有关HTML5表单的所有信息

    另一方面,表单负责Web 2.0,它们使交互式网站受益无穷! 在这个项目中,您将学习如何像Pro一样设置表单样式! 使用引导程序组件,HTML5元素和您的第一个小验证! :seedling: 如何开始这个项目不要克隆此存储库。 ...

    Registration-From:此注册表单是出于练习目的而使用HTML和CSS构建的

    标题“Registration-From:此注册表单是出于练习目的而使用HTML和CSS构建的”表明,这个项目是一个用HTML和CSS实现的注册表单。注册表单是网页上常见的互动元素,通常用于收集用户信息,如用户名、邮箱、密码等。这样...

    下拉框 新人练习 .net

    SqlDataAdapter adapter = new SqlDataAdapter("SELECT ColumnName FROM TableName", connectionString); DataTable dataTable = new DataTable(); adapter.Fill(dataTable); ddlExample.DataSource = dataTable; ...

    ASP.NET登陆注册练习

    当用户提交表单时,服务器端的代码(通常是登录事件处理器)会接收到这些信息,然后与存储在数据库中的用户凭证进行匹配。 在验证用户身份时,我们要确保数据安全。这里就涉及到SQL注入问题。SQL注入是一种常见的...

    国家计算机二级VF练习上机答案.pdf

    在国家计算机二级VF练习中,主要涵盖了数据库操作、SQL语句的使用、表单设计、视图创建以及报表生成等关键技能。 1. 数据库操作: - MODIFY DATABASE:用于打开并修改数据库,例如在案例中修改名为“学生管理”的...

    移动互联练习题

    SELECT * FROM dept; ``` 这条语句将返回`dept`表中的所有行及其对应的列值。 3. **XML文件生成**:获取到表中的数据后,需要将其转换为XML格式并保存为文件。XML是一种用于标记数据的标准格式,具有良好的结构...

    django的实战练习.rar

    《Django实战练习》 Django,作为Python领域内的一款强大Web框架,因其高效、安全且易于学习的特点,被广大开发者广泛使用。本实战练习旨在帮助开发者深入理解Django的核心概念,掌握其主要功能,并通过实际操作...

    数据保存到xml练习

    本项目“数据保存到xml练习”主要关注如何通过单页表单收集用户输入,然后将这些数据保存到XML文件中。下面我们将详细探讨这个过程涉及的关键知识点。 首先,`singlePageList.aspx`和`singlePageAdd.aspx`是两个...

    练习VFP要多详细

    例如,"SELECT * FROM 表名"用于获取表中的所有记录,"INSERT INTO 表名 VALUES (值1, 值2)"用于插入新记录,"UPDATE 表名 SET 字段 = 新值 WHERE 条件"用于更新记录,而"DELETE FROM 表名 WHERE 条件"用于删除满足...

    vb上机题vb上机题vb上机题

    2. 简单应用: - 视图创建:创建视图NEW_VIEW,显示未参加考试(成绩为空)的学生信息,这需要使用SQL的WHERE子句和NULL比较,如`CREATE VIEW NEW_VIEW AS SELECT 学号,姓名,系部 FROM course WHERE 学号 IN ...

    javascript初学者练习代码

    总的来说,这个压缩包中的练习涵盖了JavaScript基础操作、表单验证、异步处理和模块化等多个方面,是初学者很好的实践素材。通过动手实践这些代码,不仅可以加深对JavaScript语法的理解,还能熟悉实际开发中的常见...

    django 个人博客网站搭建案例练习

    评论系统相对简单,只需要在文章详情页下方添加一个表单,允许用户对文章进行评论。在`views.py`处理评论的提交,创建新的评论对象并与文章关联。在文章详情模板中显示评论列表。 最后,别忘了设置静态文件和媒体...

    VFP数据库 有关表单的试题(含答案).doc

    ### VFP数据库表单设计与实现知识点解析 ...通过这些练习,可以帮助学生更好地理解如何使用VFP创建用户友好的界面,并掌握如何通过编写简单的脚本来响应用户动作。这对于初学者来说是非常重要的基础知识。

    计算机二级ACCESS练习题.pdf

    - SELECT语句用于选择数据,FROM指明数据来源表,WHERE子句用来过滤记录,LIKE用于模糊匹配。 3. VBA编程基础 - VBA(Visual Basic for Applications)是Microsoft Office应用程序的内置编程语言,可用来创建宏和...

    用来学习python + flask 开发网站的练习项目.zip

    Flask由Armin Ronacher创建,它的核心理念是“保持简单,但不牺牲灵活性”。通过Flask,你可以轻松地定义路由、处理HTTP请求、渲染模板、管理数据库等。 在练习项目中,你可能会遇到以下关键概念: 1. **环境设置*...

    IBM关于Servlet与JSP开发的练习

    - **Exercise5:Calling JSP Pages from a Servlet** - 目标:掌握如何从Servlet中调用JSP页面。 - 实现细节:在Servlet中使用`RequestDispatcher`接口的`forward()`方法将请求转发到JSP页面。 #### 五、结语 ...

    [初学者必看]JavaScript 简单实际案例练习,锻炼代码逻辑思维

    #### 四、简单的表单验证 **核心知识点:** - **HTML 表单元素:** 使用 `&lt;input&gt;` 和 `&lt;form&gt;` 构建表单。 - **JavaScript 验证逻辑:** 使用事件监听来实现表单验证。 **实现思路:** 1. **HTML 结构:** ```...

    GridView控件使用练习

    在配置Select语句时,可以使用`SELECT * FROM [表名]`来获取表中的所有记录。 3. **绑定GridView控件**:接下来,从工具箱中拖拽一个`GridView`控件(命名为`GridView1`)至页面。通过选择数据源对话框将`GridView1...

    asp登录练习

    在"asp登录练习"这个主题中,我们可以深入探讨ASP在实现用户登录功能时的关键知识点。 1. **ASP基础概念**:ASP是Web开发中的一个技术,它允许开发者在服务器端编写脚本,通过HTTP发送动态内容到客户端浏览器。ASP...

    asp实例同学录-简单的asp实例,仅供学习练习用!

    这个简单的ASP同学录实例可能包括创建一个表单供用户输入信息,然后将这些信息存储到数据库,最后通过查询数据库显示所有同学的信息。通过实践这个实例,学习者可以掌握ASP的基本语法、数据库操作以及HTML和服务器端...

Global site tag (gtag.js) - Google Analytics