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用GD库生成高质量的缩略图片
Mar 09 PHP
php设计模式 Singleton(单例模式)
Jun 26 PHP
php fsockopen解决办法 php实现多线程
Jan 20 PHP
PHP判断指定时间段的2个方法
Mar 14 PHP
php实现数组按指定KEY排序的方法
Mar 30 PHP
PHP发送短信代码分享
Aug 11 PHP
php+mysql实现的二级联动菜单效果详解
May 10 PHP
PHP中set_include_path()函数相关用法分析
Jul 18 PHP
Laravel最佳分割路由文件(routes.php)的方式
Aug 04 PHP
php实现保存周期为1天的购物车类
Jul 07 PHP
php正确输出json数据的实例讲解
Aug 21 PHP
PHP获取HTTP body内容的方法
Dec 31 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的引用原因分析
2012/09/06 PHP
php页面消耗内存过大的处理办法
2013/03/18 PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
2013/06/21 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
2019/10/30 PHP
使用javascript访问XML数据的实例
2006/12/27 Javascript
父子窗体间传递JSON格式的数据的代码
2010/12/25 Javascript
提高jQuery性能的十个诀窍
2013/11/14 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
2016/01/08 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
Bootstrap插件全集
2016/07/18 Javascript
ES6入门教程之let和const命令详解
2017/05/17 Javascript
JavaScript判断日期时间差的实例代码
2018/03/01 Javascript
Node.js中package.json中库的版本号(~和^)
2019/04/02 Javascript
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
django formset实现数据表的批量操作的示例代码
2019/12/06 Python
tensorflow 环境变量设置方式
2020/02/06 Python
matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)
2021/01/05 Python
世界领先的电子书网站:eBooks.com(在线购买小说、非小说和教科书)
2019/03/30 全球购物
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
Conforama西班牙:您的家具、装饰和电器商店
2020/02/21 全球购物
构造器Constructor是否可被override?
2013/08/06 面试题
学习雷锋倡议书
2014/04/15 职场文书
捐助倡议书范文
2014/04/15 职场文书
晚会开幕词
2015/01/28 职场文书
鲁迅故里导游词
2015/02/05 职场文书
2015年财政所工作总结
2015/04/25 职场文书
母亲节感言
2015/08/03 职场文书
参观监狱警示教育心得体会
2016/01/15 职场文书
JavaScript 实现页面滚动动画
2021/04/24 Javascript
MySQL 数据类型详情
2021/11/11 MySQL
MySQL中一条update语句是如何执行的
2022/03/16 MySQL
基于Python实现流星雨效果的绘制
2022/03/18 Python
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle