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 中执行系统外部命令
Oct 09 PHP
PHP4实际应用经验篇(7)
Oct 09 PHP
PHP Smarty生成EXCEL文档的代码
Aug 23 PHP
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
May 27 PHP
PHP 防恶意刷新实现代码
May 16 PHP
php将字符串转化成date存入数据库的两种方式
Apr 28 PHP
php获取文件名后缀常用方法小结
Feb 24 PHP
解读PHP中的垃圾回收机制
Aug 10 PHP
php版微信公众平台入门教程之开发者认证的方法
Sep 26 PHP
yii框架搜索分页modle写法
Dec 19 PHP
浅谈关于PHP解决图片无损压缩的问题
Sep 01 PHP
php面向对象程序设计入门教程
Jun 22 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 static局部静态变量和全局静态变量总结
2014/03/02 PHP
使用PHPCMS搭建wap手机网站
2015/09/20 PHP
JavaScript For Beginners(转载)
2007/01/05 Javascript
jquery.combobox中文api和例子,修复了上面的小bug
2011/03/28 Javascript
Jquery 选中表格一列并对表格排序实现原理
2012/12/15 Javascript
Jquery实现显示和隐藏的4种简单方式
2013/08/28 Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
2013/12/30 Javascript
JavaScript实现弹出子窗口并传值给父窗口
2014/12/18 Javascript
教你如何终止JQUERY的$.AJAX请求
2016/02/23 Javascript
js字符串操作总结(必看篇)
2016/11/22 Javascript
简单实现Vue的observer和watcher
2016/12/21 Javascript
微信小程序 开发之快递查询功能的实现
2017/01/09 Javascript
vue resource post请求时遇到的坑
2017/10/19 Javascript
详解Vue源码学习之callHook钩子函数
2018/07/25 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
django简单的前后端分离的数据传输实例 axios
2020/05/18 Javascript
使用go和python递归删除.ds store文件的方法
2014/01/22 Python
Python实现的简单万年历例子分享
2014/04/25 Python
零基础写python爬虫之爬虫编写全记录
2014/11/06 Python
Python实现list反转实例汇总
2014/11/11 Python
Python在线运行代码助手
2016/07/15 Python
django站点管理详解
2017/12/12 Python
Python中psutil的介绍与用法
2019/05/02 Python
使用python绘制温度变化雷达图
2019/10/18 Python
python 写函数在一定条件下需要调用自身时的写法说明
2020/06/01 Python
如何基于Django实现上下文章跳转
2020/09/16 Python
美国复古街头服饰精品店:Need Supply Co.
2017/02/22 全球购物
京东全球售:直邮香港,澳门,台湾,美国,澳大利亚等地区
2017/09/24 全球购物
电子信息专业自荐书
2014/02/04 职场文书
读书活动实施方案
2014/03/10 职场文书
人事任命书格式
2014/06/05 职场文书
房展策划方案
2014/06/07 职场文书
2014年党委工作总结
2014/11/22 职场文书
成绩单评语
2015/01/04 职场文书
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers