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 相关文章推荐
PHPMailer安装方法及简单实例
Nov 25 PHP
PHP计算2点经纬度之间的距离代码
Aug 12 PHP
php函数指定默认值方法的小例子
Dec 04 PHP
PHP反向代理类代码
Aug 15 PHP
php文件读取方法实例分析
Jun 20 PHP
php+ajax无刷新分页实例详解
Dec 07 PHP
php删除数组中重复元素的方法
Dec 22 PHP
深入剖析浏览器退出之后php还会继续执行么
May 17 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
Jun 07 PHP
PHP封装的XML简单操作类完整实例
Nov 13 PHP
php语法检查的方法总结
Jan 21 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
Oct 11 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中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
PHP中Enum(枚举)用法实例详解
2015/12/07 PHP
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
2009/11/28 Javascript
js字符串的各种格式的转换 ToString,Format
2011/08/08 Javascript
jQuery中bind()方法用法实例
2015/01/19 Javascript
Jquery中基本选择器用法实例详解
2015/05/18 Javascript
基于JS实现导航条flash导航条
2016/06/17 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
详解vue-cli 脚手架项目-package.json
2017/07/04 Javascript
微信小程序onLaunch异步,首页onLoad先执行?
2018/09/20 Javascript
详解如何用webpack4从零开始构建react开发环境
2019/01/27 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
javaScript 实现重复输出给定的字符串的常用方法小结
2020/02/20 Javascript
原生js实现的金山打字小游戏(实例代码详解)
2020/03/16 Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
2020/08/07 Javascript
Python 模拟登陆的两种实现方法
2017/08/10 Python
python版本的仿windows计划任务工具
2018/04/30 Python
Python读写及备份oracle数据库操作示例
2018/05/17 Python
Python3匿名函数lambda介绍与使用示例
2019/05/18 Python
python绘制地震散点图
2019/06/18 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
PyCharm取消波浪线、下划线和中划线的实现
2020/03/03 Python
python 实现超级玛丽游戏
2020/11/25 Python
CSS3标注引用的出处和来源的方法
2020/02/25 HTML / CSS
【HTML5】3D模型--百行代码实现旋转立体魔方实例
2016/12/16 HTML / CSS
什么是Remote Module
2016/06/10 面试题
联欢晚会主持词
2014/03/25 职场文书
软件工程毕业生自荐信
2014/07/04 职场文书
学雷锋志愿者活动方案
2014/08/21 职场文书
三严三实对照检查材料
2014/08/25 职场文书
幼儿园六一儿童节活动总结
2015/02/10 职场文书
校园之声广播稿
2015/08/18 职场文书
听课评课活动心得体会
2016/01/15 职场文书
使用Ajax实现无刷新上传文件
2022/04/12 Javascript
win10此电脑打不开怎么办 win10双击此电脑无响应的解决办法
2022/07/23 数码科技