资源描述
,PHP,第,6,章 阶段案例,Web,表单生成器,数组的应用,函数的应用,第6章 阶段案例Web表单生成器数组的应用函数的应用,目录,需求分析,6.2,6.1,案例展示,案例实现,6.3,目录需求分析6.26.1案例展示案例实现6.3,6.1,案例展示,样式一,样式二,样式三,6.1 案例展示样式一样式二样式三,6.2,需求分析,在项目的实际开发中,经常需要设计各种各样表单。直接编写,HTML,表单虽然简单,但修改、维护相对麻烦。,因此,可以利用,PHP,实现一个,Web,表单生成器,使其可以根据具体的需求定制不同功能的表单。具体实现需求如下:,6.2 需求分析 在项目的实际开发中,经常需要,6.2,需求分析,使用多维数组保存表单的相关信息,支持的表单项包括文本框、文本域、单选框、复选框和下拉列表,5,种类型,保存每个表单项的标记、提示文本、属性、选项值、默认值等,将功能封装成函数,根据传递的参数生成指定的表单,6.2 需求分析使用多维数组保存表单的相关信息,6.2,需求分析,数据的保存形式决定了程序实现的方式。,因此,根据上述开发要求,可以将每个表单项作为一个数组元素,每个元素利用一个关联数组描述,分别为:标记,tag,、提示文本,text,、属性数组,attr,、选项数组,option,和默认值,default,。,6.2 需求分析数据的保存形式决定了程序实现的方式。,6.3,案例实现,准备表单,表单的主要功能,:就是在网页上用于输入信息的区域,收集用户输入的信息,并将其提交给后端的服务器进行处理,实现用户与服务器的交互。,例如,:购物结算、信息搜索等都是通过表单实现的。,6.3 案例实现准备表单表单的主要功能:就是在网页上用于输入,6.3,案例实现,准备表单,创建表单,一个完整的表单是由表单域和表单控件组成的。其中,表单域由,form,标记定义,用于实现用户信息的收集和传递。,“,”是,HTML,的注释标记,用于解释和说明。,6.3 案例实现准备表单创建表单一个完整的表单是由表单域,6.3,案例实现,准备表单,创建表单,action,属性的值可以是绝对路径、相对路径,若省略该属性则表示提交给当前文件进行处理。,GET,方式传递的表单在,URL,地址栏中可见。,相比,GET,方式,,POST,方式提交的数据是不可见的,在交互时相对安全。因此,通常情况下使用,POST,方式提交表单数据。,6.3 案例实现准备表单创建表单action属性的值可以,6.3,案例实现,准备表单,创建表单,enctype,属性的默认值为,application/x-www-form-urlencoded,,表示在发送表单数据前编码所有字符。除此之外还可以设置为,multipart/form-data,表示不进行字符编码,尤其是含有文件上传的表单必须使用该值;设置为,text/plain,表示将空格转换为“,+”,加号,但不对特殊字符编码。,6.3 案例实现准备表单创建表单enctype属性的默认,6.3,案例实现,准备表单,表单控件,input,控件,type,属性设置不同的值,即可得到不同的表单控件,name,属性用于指定控件的名称,用以区分表单中多个相同的控件,value,属性用于设置表单控件的默认值,6.3 案例实现准备表单表单控件input type=,6.3,案例实现,准备表单,表单控件,男,女,游泳,读书,跑步,input,控件,checked,属性用于设置默认选中项,6.3 案例实现准备表单表单控件,6.3,案例实现,准备表单,表单控件,textarea,控件,textarea,控件适用于自我评价、评论等可能需要输入大量信息的功能,属性,cols,和,rows,用于定义文本域的高度和宽度,6.3 案例实现准备表单表单控件textarea na,6.3,案例实现,准备表单,表单控件,-,请选择,-,北京,深圳,上海,select,控件,select,是定义下拉列表的标记,option,是定义下拉列表中具体选项的标记,selected,属性用于设置默认选中项,6.3 案例实现准备表单表单控件,/,表单项,1=,/,表单项,2=,/,表单项,3=,/,表单项,;,单选按钮,文本框,6.3 案例实现多维数组保存数据数据的保存形式/利用,6.3,案例实现,多维数组保存数据,数据的保存形式,/,每个表单项的数组结构,0=,tag=,/,标记,text=,/,提示文本,attr=,/,属性数组,option=,/,选项数组,default=/,默认值,input,、,textarea,、,select,label,标签内显示的内容,表单元素的属性,如,type,单选框或复选框中的每个选项,默认值,6.3 案例实现多维数组保存数据数据的保存形式/每个,6.3,案例实现,多维数组保存数据,准备表单生成数据,/$elements,数组保存整个表单,$elements=,0=,/,第,1,个表单项数组,1=,/,第,2,个表单项数组,;,0=,tag=input,text=,姓名:,attr=type=text,name=user,准备表单数组,文本框,6.3 案例实现多维数组保存数据准备表单生成数据/$,6.3,案例实现,多维数组保存数据,准备表单生成数据,3=,tag=input,text=,性别:,attr=type=radio,name=gender,option=m=,男,w=,女,default=m,单选框,option,利用关联数组保存具体的单选项,键名,m,、,w,为单选框的,value,属性值,对应的值“男”、“女”为该单选项的提示信息,default,的值为,option,关联数组中的一个键名,表示默认选中哪一项,6.3 案例实现多维数组保存数据准备表单生成数据3=,6.3,案例实现,多维数组保存数据,准备表单生成数据,4=,tag=input,text=,爱好:,attr=type=checkbox,name=hobby,option=swimming=,游泳,reading=,读书,running=,跑步,default=swimming,reading,复选框,6.3 案例实现多维数组保存数据准备表单生成数据4=,6.3,案例实现,多维数组保存数据,准备表单生成数据,5=,tag=select,text=,住址:,attr=name=area,option=-,请选择,-,BJ=,北京,SH=,上海,SZ=,深圳,下拉列表,6.3 案例实现多维数组保存数据准备表单生成数据5=,6.3,案例实现,多维数组保存数据,准备表单生成数据,6=,tag=textarea,text=,自我介绍:,attr=name=introduce,cols=50,rows=5,文本域,6.3 案例实现多维数组保存数据准备表单生成数据6=,6.3,案例实现,多维数组保存数据,准备表单生成数据,7=,tag=input,attr=type=submit,value=,提交,提交按钮,6.3 案例实现多维数组保存数据准备表单生成数据7=,6.3,案例实现,表单的自动生成,定义表单生成函数,实现思路,按照指定的格式保存待生成表单的数据,如,$elements,数组,自定义表单生成函数,general(),,将函数的返回值输出到对应的,HTML,表单中,6.3 案例实现表单的自动生成定义表单生成函数实现思路,6.3,案例实现,表单的自动生成,读取,$elements,数组,实现思路,为了方便处理用户提交的数据,将,$elements,中的每个表单项与指定的数组进行合并,使得每个表单项都含有键为,tag,、,text,、,attr,、,option,和,default,五个元素,且顺序相同。,根据,tag,值,分别调用前缀为“,general_,”的函数进行表单项的拼接,每个表单项占据一行,并返回拼接好的表单,6.3 案例实现表单的自动生成读取$elements数组,6.3,案例实现,表单的自动生成,拼接表单元素的属性,实现思路,定义函数,general_attr($attr,$items=),用于完成表单元素属性的拼接,$attr,数组中元素的键为属性名称,元素的值为属性的值,通过遍历完成属性与,$items,的拼接并返回,如,type=radio name=gender,6.3 案例实现表单的自动生成拼接表单元素的属性实现思路,6.3,案例实现,表单的自动生成,拼接,input,元素,实现思路,根据是否含有,option,元素,判断是否是单选或多选,若不是,则直接调用属性函数完成表单项的拼接,若是,则通过遍历依次完成多个选项的拼接并返回,6.3 案例实现表单的自动生成拼接input元素实现思路,6.3,案例实现,表单的自动生成,拼接,select,元素,实现思路,拼接下拉列表的选项,option,完成,select,标记的完整拼接并返回,6.3 案例实现表单的自动生成拼接select元素实现思,6.3,案例实现,表单的自动生成,拼接,textarea,元素,实现思路,拼接,textarea,元素的属性,完整拼接,textarea,并返回,6.3 案例实现表单的自动生成拼接textarea元素实,PHP程序开发-PHP基础案例教程第6章-阶段案例Web表单生成器课件,
展开阅读全文