在同一窗体中使用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详细彻底学习Smarty
Mar 27 PHP
C# Assembly类访问程序集信息
Jun 13 PHP
PHP array_multisort()函数的使用札记
Jul 03 PHP
php获取文件大小的方法
Feb 26 PHP
php之curl实现http与https请求的方法
Oct 21 PHP
Mac OS下配置PHP+MySql环境
Feb 25 PHP
PHP中把对象转换为关联数组代码分享
Apr 09 PHP
PHP json_encode() 函数详解及中文乱码问题
Nov 05 PHP
PHP框架Laravel插件Pagination实现自定义分页
Apr 22 PHP
详解php框架Yaf路由重写
Jun 20 PHP
thinkphp3.2实现在线留言提交验证码功能
Jul 19 PHP
php实现获取近几日、月时间示例
Jul 06 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
windows7下安装php的php-ssh2扩展教程
2014/07/04 PHP
PHP间隔一段时间执行代码的方法
2014/12/02 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
JavaScript 学习点滴记录
2009/04/24 Javascript
Prototype源码浅析 Enumerable部分之each方法
2012/01/16 Javascript
javascript中的startWith和endWith的几种实现方法
2013/05/07 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
javascript创建和存储cookie示例
2014/01/07 Javascript
用Jquery选择器计算table中的某一列某一行的合计
2014/08/13 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
巧用canvas
2017/01/21 Javascript
微信小程序之自定义组件的实现代码(附源码)
2018/08/02 Javascript
layer弹出子iframe层父子页面传值的实现方法
2018/11/22 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
[00:10]DOTA2全国高校联赛速递
2018/05/30 DOTA
python执行外部程序的常用方法小结
2015/03/21 Python
Django使用httpresponse返回用户头像实例代码
2018/01/26 Python
在python中实现调用可执行文件.exe的3种方法
2019/07/07 Python
python 叠加等边三角形的绘制的实现
2019/08/14 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
2020/05/11 Python
师范教师大学生职业生涯规划范文
2014/01/05 职场文书
公司接待方案
2014/03/08 职场文书
研讨会主持词
2014/04/02 职场文书
大学共青团员个人自我评价
2014/04/16 职场文书
市场营销专业应届生自荐信
2014/06/19 职场文书
创先争优宣传标语
2014/10/08 职场文书
保安2014年终工作总结
2014/12/06 职场文书
于丹论语心得观后感
2015/06/15 职场文书
《从现在开始》教学反思
2016/02/16 职场文书
《认识钟表》教学反思
2016/02/16 职场文书
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android