在同一窗体中使用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发电子邮件
Oct 09 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
Jun 29 PHP
PHP-Java-Bridge使用笔记
Sep 22 PHP
php实现获取文章内容第一张图片的方法
Nov 04 PHP
ThinkPHP中使用ajax接收json数据的方法
Dec 18 PHP
php截取html字符串及自动补全html标签的方法
Jan 15 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
May 12 PHP
typecho插件编写教程(三):保存配置
May 28 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
Dec 22 PHP
PHP连接数据库实现注册页面的增删改查操作
Mar 27 PHP
php排序算法实例分析
Oct 17 PHP
PHP实现的多维数组排序算法分析
Feb 10 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
从MySQL数据库表中取出随机数据的代码
2007/09/05 PHP
php5 图片验证码实现代码
2009/12/11 PHP
用mysql_fetch_array()获取当前行数据的方法详解
2013/06/05 PHP
关于WordPress的SEO优化相关的一些PHP页面脚本技巧
2015/12/10 PHP
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
javascript对中文按照拼音排序代码
2014/08/20 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
使用jQuery+EasyUI实现CheckBoxTree的级联选中特效
2015/12/06 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
2017/06/15 Javascript
关于页面刷新vuex数据消失问题解决方案
2017/07/03 Javascript
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
JavaScript通过mouseover()实现图片变大效果的示例
2017/12/20 Javascript
JavaScript中的一些实用小技巧总结
2019/04/07 Javascript
微信小程序实现文件、图片上传功能
2020/08/18 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
功能完善的小程序日历组件的实现
2020/03/31 Javascript
js模拟实现百度搜索
2020/06/28 Javascript
Python内置函数的用法实例教程
2014/09/08 Python
关于Django显示时间你应该知道的一些问题
2017/12/25 Python
python opencv minAreaRect 生成最小外接矩形的方法
2019/07/01 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
python初步实现word2vec操作
2020/06/09 Python
Python使用itcaht库实现微信自动收发消息功能
2020/07/13 Python
python 基于卡方值分箱算法的实现示例
2020/07/17 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
python遍历路径破解表单的示例
2020/11/21 Python
淘宝网店营销策划书
2014/01/11 职场文书
医药销售求职信范文
2014/02/01 职场文书
经济贸易专业自荐信
2014/06/11 职场文书
学校综治宣传月活动总结
2014/07/02 职场文书
大学生见习报告范文
2014/11/03 职场文书
2015公务员年度考核评语
2015/03/25 职场文书
青年人初次创业的“五不要”
2019/08/23 职场文书
自从在 IDEA 中用了热部署神器 JRebel 之后,开发效率提升了 10(真棒)
2021/06/26 Java/Android
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python