PHP入门速成(2)


Posted in PHP onOctober 09, 2006

表单处理

PHP为用户提供了众多方便易用的强大功能。在表单的处理方面,PHP能够自动地将由客户端表单发送的数据赋值给相应变量,从而极大地简化了整个表单的处理过程。

举例来说,用户建立如下表单:

< INPUT TYPE=TEXT NAME=“name” VALUE=“PETER” >

当使用PHP对上述代码进行处理时,PHP自动创建一个名为$name的变量,并将变量值“PETER”赋予该变量。

用户可以直接对PHP创建的变量进行各种操作,例如显示变量值:

echo “Hi $name!”;

或对变量值进行验证:

if ($name == “PETER”) { echo “Please check out your email.”; }

下面,我们就来看一下如何通过使用PHP创建并处理一个基本的表单。在示例当中,我们将会要求表单的填写者回答几个简短的问题,包括输入表单填写者的姓名,电子邮件地址,完成调查问卷等。

这里,我们将所要设计的页面按照功能划分成表单显示和表单处理两个功能模块。这样,用户就不必设计两个不同的页面,而只需要在同一个PHP页面中通过逻辑控制显示或处理相应的功能模块。 A. 表单显示

我们通过第一个功能模块来实现表单的显示。具体代码为:

< ?php

function display_form()

{

global $PHP_SELF;

? >

< FORM TARGET=“< ?php echo $PHP_SELF; ? >”METHOD=GET >

Name: < INPUT TYPE=TEXT NAME=“name” >< BR >

Favorite Fruit: < INPUT TYPE=RADIO NAME=“fruit” VALUE=“apple” >Apple

< INPUT TYPE=RADIO NAME=“fruit” VALUE=“orange” >Orange

< INPUT TYPE=RADIO NAME=“fruit” VALUE=“banana” >Banana

Favorite Times to Eat Fruit:

< INPUT TYPE=CHECKBOX NAME=“times[]” VALUE=“m” >Morning

< INPUT TYPE=CHECKBOX NAME=“times[]” VALUE=“n” >Noon

< INPUT TYPE=CHECKBOX NAME=“times[]” VALUE=“d” >Dinner

< INPUT TYPE=CHECKBOX NAME=“times[]” VALUE=“l” >Latenight

< INPUT TYPE=HIDDEN NAME=“stage” VALUE= “results” >

< INPUT TYPE=SUBMIT VALUE= “Thanks!” >

< /FORM >

< ?php

}

? >

上述代码中绝大多数都是创建表单所必需的HTML代码。在此,我们仅对所涉及到的PHP知识做一下简单介绍。

首先,我们来看一下代码开始处的变量$PHP_SELF。变量$PHP_SELF是PHP中一个很方便的指针,其变量值就是当前页面的URL地址。这样,我们就可以通过在随后的form标签中将TARGET的值设定为$PHP_SELF,实现由该表单页面处理表单的目的。这里,我们使用$PHP_SELF变量而不使用页面的实际地址,是因为通过使用$PHP_SELF变量,我们可以方便对编写的页面代码进行修改和移动,而不必担心在每次改动之后重新输入新的页面地址。

另外,在使用$PHP_SELF变量时,我们采用了如下方式:

global $PHP_SELF;

这表明代码中的$PHP_SELF变量为全局变量。用户在使用PHP的过程中一定要注意PHP中任何的函数变量都是局部变量。这就意味着任何函数变量的作用域都只局限于包括该变量的函数本身。即使函数外存在同名变量,变量的值也不相同。因此,如果我们没有在代码中以显式方式声明函数变量$PHP_SELF为全局变量具有全局唯一值的话,用户就会发现函数中的变量$PHP_SELF的值将会为空,而不是我们预先所期望的当前页面的URL地址。

用户可能已经注意到我们将表单复选选项的名称设置为times[]数组,而把单选选项的名称设定为fruit常规变量。这是因为单选选项只允许用户选择唯一一个正确选项,因此fruit变量的值只可能是一个字符串;相反,复选选项则允许用户做多重性选择。如果,用户希望PHP能够保存用户可能作出的所有选择的话,就需要使用数组来保存所有的可能值。按照PHP的语法规则,我们通过在变量名times后面加上方括号,使PHP知道该变量是一个数组变量而不是普通的常规变量。

最后,我们设定了一个名为stage的隐含变量,通过使用该变量,我们可以控制是否显示表单还是处理表单结果。  

PHP 相关文章推荐
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
Nov 10 PHP
使用PHPMyAdmin修复论坛数据库的图文方法
Jan 09 PHP
PHP投票系统防刷票判断流程分析
Feb 04 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
Nov 25 PHP
浅谈ThinkPHP的URL重写
Nov 25 PHP
php fseek函数读取大文件两种方法
Oct 12 PHP
php array_merge_recursive 数组合并
Oct 26 PHP
Yii2表单事件之Ajax提交实现方法
May 04 PHP
php基于SQLite实现的分页功能示例
Jun 21 PHP
PHP实现的操作数组类库定义与用法示例
May 24 PHP
设定php简写功能的方法
Nov 28 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
May 02 PHP
用PHP制作静态网站的模板框架
Oct 09 #PHP
PHP5在Apache下的两种模式的安装
Sep 05 #PHP
WINDOWS 2000下使用ISAPI方式安装PHP
Sep 05 #PHP
教你IIS6的PHP最佳配置方法
Sep 05 #PHP
详细介绍:Apache+PHP+MySQL配置攻略
Sep 05 #PHP
PHP环境搭建最新方法
Sep 05 #PHP
初学者入门:细述PHP4的核心Zend
Sep 05 #PHP
You might like
不错的PHP学习之php4与php5之间会穿梭一点点感悟
2007/05/03 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
js类型检查实现代码
2010/10/29 Javascript
基于jQuery架构javascript基础体系
2011/01/01 Javascript
zShowBox 图片放大展示jquery版 兼容性
2011/09/24 Javascript
node.js中的fs.futimes方法使用说明
2014/12/17 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
JS取模、取商及取整运算方法示例
2016/10/13 Javascript
bootstrap datetimepicker2.3.11时间插件使用
2016/11/19 Javascript
javascript使用递归算法求两个数字组合功能示例
2017/01/03 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
2018/05/31 Javascript
详解如何在Vue项目中导出Excel
2019/04/19 Javascript
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
2019/04/22 Javascript
Node绑定全局TraceID的实现方法
2019/11/14 Javascript
vue.js实现简单的计算器功能
2020/02/22 Javascript
python 查找文件夹下所有文件 实现代码
2009/07/01 Python
python模拟登陆Tom邮箱示例分享
2014/01/13 Python
在windows下Python打印彩色字体的方法
2018/05/15 Python
使用 python pyautogui实现鼠标键盘控制功能
2019/08/04 Python
python hashlib加密实现代码
2019/10/17 Python
django orm模块中的 is_delete用法
2020/05/20 Python
python tqdm库的使用
2020/11/30 Python
python实现简单文件读写函数
2021/02/25 Python
欧姆龙医疗保健与医疗产品:Omron Healthcare
2020/02/10 全球购物
什么时候需要进行强制类型转换
2016/09/03 面试题
小学班长竞选演讲稿
2014/04/24 职场文书
抗洪救灾先进集体事迹材料
2014/05/26 职场文书
安全标语口号
2014/06/09 职场文书
员工安全生产责任书
2014/07/22 职场文书
单位委托书怎么写
2014/08/02 职场文书
2014年民政局关于保密工作整改措施
2014/09/19 职场文书
专题组织生活会思想汇报
2014/10/01 职场文书
如何写辞职书
2015/02/26 职场文书
2015年敬老月活动总结
2015/03/27 职场文书