在同一窗体中使用PHP来处理多个提交任务


Posted in PHP onOctober 09, 2006

在PHP中的处理窗体数据比其它网页程序语言更简单——如果你使用这种语言一段时间后,你会发现这是一个不可争辩的事实。这种操作的简易性使它可以容易地处理更为复杂的窗体事件,包括今天讨论的主题,即在同一个窗体中通过多个按钮来处理不同的任务。

为什么使用多个提交任务?

在我回答这个问题之前,先让我回答一个很显然的问题:既然许多窗体更适合单一的提交按钮,为什么有时人们需要的是两个(或者是更多)的提交按钮?

对这一问题最好的解释方法是用我最近开发项目中的一个实例来说明。在这一项目中,我的任务是给一个图书馆建立一个详细目录查询系统。书籍题目被储存在数据库中,而管理员将可以使用一个基于浏览器功能的界面来查看其中任何一本书的记录,然后对这一记录上选择执行四种操作之一:成员还书登记,成员借书登记,书本丢失记录以及书本销售记录。

以上所有任务都要通过一个独立窗体来处理,这样就需要相应的按钮来响应这些任务。传入到窗体的数据将以不同的方式处理,这取决于被点击的按钮(借书/还书和成员记录相互关联;丢失/销售记录改变详细目录表)。由于一个窗体只能处理一个唯一的任务,但是相同的PHP脚本可以根据被点击的按钮和执行合适的代码段来处理以上四种任务。因此就需要处理多个提交任务按钮的单一窗体,以及实现不同按钮的自动响应的窗体处理代码段。

我首先列举一个简单例子:一个提交按扭的窗体。这样能够让你清楚地理解基本概念,并且为将要讲述的复杂范例打下铺垫。这里是一个窗体:

<html><head>Single-button form</head>
<body>

<form action="processor.php" method="post"> Enter a number: <input type="text" name="number" size="3"> <br>
<input type="submit" name="submit"> </form>

</body>
</html>

以下的是调用提交任务的processor.php脚本:

<?php

// check for submission
// retrieve value from posted data
if ($_POST['submit'])
{
    echo "You entered the number " . $_POST['number']; }

?>

当一个窗体被提交给PHP脚本时,根据使用的提交方法(本文我假设为POST),PHP自动建立一个特定的$_POST或者$_GET数组。键入到窗体输入域内的数值会自动转化成数组中的关键数据,并可以使用常规数据符号来访问这些数据。 

特别值得注意的是,如何在以上脚本中处理提交任务的按扭。当窗体被提交时,提交按钮根据自己实际的“name”转变成$_POST中的一个元素。添加以下一行代码就很清楚了:

print_r($_POST);

为了了解以上PHP脚本,你可以查看数组的内部结构,并可以清楚地看到不同窗体控件之间的相互联系。

PHP 相关文章推荐
无数据库的详细域名查询程序PHP版(1)
Oct 09 PHP
php 友好URL的实现(吐血推荐)
Oct 04 PHP
PHP flock 文件锁详细介绍
Dec 29 PHP
PHP获取windows登录用户名的方法
Jun 24 PHP
php mb_substr()函数截取中文字符串应用示例
Jul 29 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
Dec 19 PHP
php+html5实现无刷新图片上传教程
Jan 22 PHP
ThinkPHP中session函数详解
Sep 14 PHP
PHP实现的mysql主从数据库状态检测功能示例
Jul 20 PHP
php ajax数据传输和响应方法
Aug 21 PHP
用PHP的反射实现委托模式的讲解
Mar 22 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
Feb 22 PHP
使用MaxMind 根据IP地址对访问者定位
Oct 09 #PHP
Zend公司全球首推PHP认证
Oct 09 #PHP
真正面向对象编程:PHP5.01发布
Oct 09 #PHP
PHP中实现图片的锐化
Oct 09 #PHP
在Zeus Web Server中安装PHP语言支持
Oct 09 #PHP
通过对php一些服务器端特性的配置加强php的安全
Oct 09 #PHP
一个阿拉伯数字转中文数字的函数
Oct 09 #PHP
You might like
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
Yii框架核心组件类实例详解
2019/08/06 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
Javascript 汉字字节判断
2009/08/01 Javascript
将jQuery应用于login页面的问题及解决
2009/10/17 Javascript
javascript Keycode对照表
2009/10/24 Javascript
javascript 拖放效果实现代码
2010/01/22 Javascript
jquery 动态创建元素的方式介绍及应用
2013/04/21 Javascript
JavaScript中的cacheStorage使用详解
2015/07/29 Javascript
jQuery使用$.ajax提交表单完整实例
2015/12/11 Javascript
Angularjs修改密码的实例代码
2017/05/26 Javascript
React Native时间转换格式工具类分享
2017/10/24 Javascript
JS实现手写 forEach算法示例
2020/04/29 Javascript
python通过zlib实现压缩与解压字符串的方法
2014/11/19 Python
Fabric 应用案例
2016/08/28 Python
Python使用time模块实现指定时间触发器示例
2017/05/18 Python
Python 在字符串中加入变量的实例讲解
2018/05/02 Python
计算机二级python学习教程(2) python语言基本语法元素
2019/05/16 Python
24式加速你的Python(小结)
2019/06/13 Python
python实现静态服务器
2019/09/05 Python
妙用itchat! python实现久坐提醒功能
2019/11/25 Python
关于Pytorch的MNIST数据集的预处理详解
2020/01/10 Python
Python使用socket_TCP实现小文件下载功能
2020/10/09 Python
CSS3解决移动页面上点击链接触发色块的问题
2016/06/03 HTML / CSS
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
2013/01/06 HTML / CSS
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
MAC Cosmetics巴西官方网站:M·A·C彩妆
2019/04/18 全球购物
医学生就业推荐表自我鉴定
2014/03/26 职场文书
公司请假条格式
2014/04/11 职场文书
人事任命书怎么写
2014/06/05 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
2015应届毕业生自荐信范文
2015/03/05 职场文书
php微信小程序解包过程实例详解
2021/03/31 PHP
只需要100行Python代码就可以实现的贪吃蛇小游戏
2021/05/27 Python
浅谈Redis主从复制以及主从复制原理
2021/05/29 Redis
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android