热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

案例分析PHPWeb表单生成器

这篇文章主要介绍了PHPWeb表单生成器,结合具体案例形式分析了PHPWeb表单生成器基本功能需求、实现方法与操作注意事项,需要的朋友可以参考下。
例如:购物结算、信息搜索等都是通过表单实现的。

2.准备表单——创建表单

一个完整的表单是由表单域和表单控件组成的。其中,表单域由form标记定义,用于实现用户信息的收集和传递。

  

“>”是HTML的注释标记,用于解释和说明。

GET方式传递的表单在URL地址栏中可见。
相比GET方式,POST方式提交的数据是不可见的,在交互时相对安全。因此,通常情况下使用POST方式提交表单数据。

  • enctype属性的默认值为application/x-www-form-urlencoded,表示在发送表单数据前编码所有字符。除此之外还可以设置为multipart/form-data(POST方式)表示不进行字符编码,尤其是含有文件上传的表单必须使用该值;设置为text/plain(POST方式)表示传输普通文本。
  • 3.准备表单—表单控件

    //input控件
    	
    		
         		
     		
         		
        		
    • type属性设置不同的值,即可得到不同的表单控件
    • name属性用于指定控件的名称,用以区分表单中多个相同的控件
    • value属性用于设置表单控件的默认值
    //input控件
    
     游泳
     读书
     跑步
    • checked属性用于设置默认选中项
    //textarea控件
    
    • textarea控件适用于自我评价、评论等可能需要输入大量信息的功能
    • 属性cols和rows用于定义文本域的高度和宽度
    //select控件
    
    • select是定义下拉列表的标记
    • option是定义下拉列表中具体选项的标记
    • selected属性用于设置默认选中项

    4.准备表单—label标记

    在编写表单控件时,为了提供更好的用户体验,经常将input控件与label标记联合使用,以扩大控件的选择范围。
    例如,选择性别时,单击提示文字“男”或“女”,也可选中相应的单选按钮。

    使用label标记包裹单选按钮和提示文本,即可实现单击label标记里的内容时,相应的表单控件就会被选中。

    
    

    5.多维数组

    根据案例的需求分析可知,表单项的相关数据统一保存到一个多维数组中。其中,利用数字键名区分不同的表单项,每个表单项又是一个二维的关联数组。

    // 利用多维数组保存表单元素
    [
      0 => [],	// 表单项---单选按钮
      1 => [],	// 表单项
      2 => [],	// 表单项---文本框
      3 => [],	// 表单项
      ……
    ];
    // 每个表单项的数组结构
    0 => [
      'tag' => '', 	// 标记----input、textarea、select
      'text' => '', 	// 提示文本----label标签内显示的内容
      'attr' => [],	// 属性数组----表单元素的属性,如type
      'option' => [], 	// 选项数组----单选框或复选框中的每个选项
      'default' => ''	// 默认值----默认值
    ],
    //准备表单数组
    // $elements数组保存整个表单
    $elements = [
      0 => [],		// 第1个表单项数组
      1 => [],		// 第2个表单项数组
    ];
    //文本框
    0 => [
      'tag' => 'input',
      'text' => '姓  名:',
      'attr' => ['type' => 'text', 'name' => 'user']
    ],
    //单选框
    3 => [
      'tag' => 'input',
      'text' => '性  别:',
      'attr' => ['type' => 'radio', 'name' => 'gender'],
      'option' => ['m' => '男', 'w' => '女'],
      'default' => 'm'
     ],

    option利用关联数组保存具体的单选项,键名m、w为单选框的value属性值,对应的值“男”、“女”为该单选项的提示信息
    default的值为option关联数组中的一个键名,表示默认选中哪一项

    //复选框
    4 => [
      'tag' => 'input',
      'text' => '爱  好:',
      'attr' => ['type' => 'checkbox', 'name' => 'hobby[]'],
      'option' => ['swimming' => '游泳', 'reading' => '读书', 'running' => '跑步'],
      'default' => ['swimming', 'reading']
    ],
    //下拉列表
    5 => [
      'tag' => 'select',
      'text' => '住  址:',
      'attr' => ['name' => 'area'],
      'option' => ['' => '--请选择--', 'BJ'=>'北京', 'SH'=>'上海', 'SZ'=>'深圳']
    ],
    //文本域
    6 => [
      'tag' => 'textarea',
      'text' => '自我介绍:',
      'attr' => ['name' => 'introduce', 'cols' => 50, 'rows' => 5]
    ],
    //提交按钮
    7 => [
      'tag' => 'input',
      'attr' => ['type' => 'submit', 'value' => '提交']
    ]

    表单的自动生成

    1.表单的自动生成——读取$elements数组

    实现思路

    • 为了方便处理用户提交的数据,将$elements中的每个表单项与指定的数组进行合并,使得每个表单项都含有键为tag、text、attr、option和default五个元素,且顺序相同。
    • 根据tag值,分别调用前缀为“generate_”的函数进行表单项的拼接
    • 每个表单项占据一行,并返回拼接好的表单

    2.表单的自动生成——拼接表单元素的属性

    实现思路

    • 定义函数generate_attr($attr, $items = ‘')用于完成表单元素属性的拼接
    • $attr数组中元素的键为属性名称,元素的值为属性的值
    • 通过遍历完成属性与$items的拼接并返回,如type=“radio” name=“gender”

    3.表单的自动生成——拼接input元素

    实现思路

    • 根据是否含有option元素,判断是否是单选或多选
    • 若不是,则直接调用属性函数完成表单项的拼接
    • 若是,则通过遍历依次完成多个选项的拼接并返回

    以上就是案例分析PHP Web表单生成器的详细内容,更多请关注 第一PHP社区 其它相关文章!


    推荐阅读
    • 深入理解OAuth认证机制
      本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
    • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
    • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
    • Vue 2 中解决页面刷新和按钮跳转导致导航栏样式失效的问题
      本文介绍了如何通过配置路由的 meta 字段,确保 Vue 2 项目中的导航栏在页面刷新或内部按钮跳转时,始终保持正确的 active 样式。具体实现方法包括设置路由的 meta 属性,并在 HTML 模板中动态绑定类名。 ... [详细]
    • 本文探讨了如何通过最小生成树(MST)来计算严格次小生成树。在处理过程中,需特别注意所有边权重相等的情况,以避免错误。我们首先构建最小生成树,然后枚举每条非树边,检查其是否能形成更优的次小生成树。 ... [详细]
    • QUIC协议:快速UDP互联网连接
      QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
    • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
    • 深入理解 Oracle 存储函数:计算员工年收入
      本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
    • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
    • CSS 布局:液态三栏混合宽度布局
      本文介绍了如何使用 CSS 实现液态的三栏布局,其中各栏具有不同的宽度设置。通过调整容器和内容区域的属性,可以实现灵活且响应式的网页设计。 ... [详细]
    • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
      本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
    • 本文总结了汇编语言中第五至第八章的关键知识点,涵盖间接寻址、指令格式、安全编程空间、逻辑运算指令及数据重复定义等内容。通过详细解析这些内容,帮助读者更好地理解和应用汇编语言的高级特性。 ... [详细]
    • 本文介绍了如何使用jQuery根据元素的类型(如复选框)和标签名(如段落)来获取DOM对象。这有助于更高效地操作网页中的特定元素。 ... [详细]
    • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
    • PHP 5.2.5 安装与配置指南
      本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
    author-avatar
    手机用户2702935031
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有