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


Posted in PHP onMay 08, 2008

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

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

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

以上所有任务都要通过一个独立窗体来处理,这样就需要相应的按钮来响应这些任务。传入到窗体的数据将以不同的方式处理,这取决于被点击的按钮(借书/还书和成员记录相互关联;丢失/销售记录改变详细目录表)。由于一个窗体只能处理一个唯一的任务,但是相同的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学习笔记 面向对象中[接口]与[多态性]的应用
Jun 16 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
Jan 23 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
Jun 21 PHP
注意:php5.4删除了session_unregister函数
Aug 05 PHP
PHP修改session_id示例代码
Jan 08 PHP
php自定义函数截取汉字长度
May 15 PHP
PHP定时执行任务实现方法详解(Timer)
Jul 30 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
PHP类与对象后期静态绑定操作实例详解
Dec 20 PHP
thinkphp5修改view到根目录实例方法
Jul 02 PHP
PHP FileSystem 文件系统常用api整理总结
Jul 12 PHP
PHP架构及原理知识点详解
Dec 22 PHP
用php+javascript实现二级级联菜单的制作
May 06 #PHP
轻松修复Discuz!数据库
May 03 #PHP
php xfocus防注入资料
Apr 27 #PHP
php SQL防注入代码集合
Apr 25 #PHP
php中文字母数字验证码实现代码
Apr 25 #PHP
Ajax PHP简单入门教程代码
Apr 25 #PHP
PHP开发框架总结收藏
Apr 24 #PHP
You might like
php递归创建目录的方法
2015/02/02 PHP
深入浅析php json 格式控制
2015/12/24 PHP
基于JQuery实现的类似购物商城的购物车
2011/12/06 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
jQuery+jRange实现滑动选取数值范围特效
2015/03/14 Javascript
如何动态加载外部Javascript文件
2015/12/02 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
2016/06/12 Javascript
第一次接触神奇的Bootstrap
2016/10/14 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
js实现简单模态框实例
2018/11/16 Javascript
nodejs环境使用Typeorm连接查询Oracle数据
2019/12/05 NodeJs
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
2019/12/15 Javascript
JavaScript数组排序小程序实现解析
2020/01/13 Javascript
JS+DIV实现拖动效果
2020/02/11 Javascript
js实现贪吃蛇游戏(简易版)
2020/09/29 Javascript
[01:04:02]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第二场 1月24日
2021/03/11 DOTA
Python列表append和+的区别浅析
2015/02/02 Python
Python编程中的for循环语句学习教程
2015/10/14 Python
python matplotlib画图实例代码分享
2017/12/27 Python
使用Python进行AES加密和解密的示例代码
2018/02/02 Python
使用pygame模块编写贪吃蛇的实例讲解
2018/02/05 Python
python和flask中返回JSON数据的方法
2018/03/26 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
keras 权重保存和权重载入方式
2020/05/21 Python
python变量的作用域是什么
2020/05/26 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
CSS3 重置iphone浏览器按钮input,select等表单元素的默认样式
2014/10/11 HTML / CSS
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
感恩老师演讲稿600字
2014/08/28 职场文书
工作经常出错的检讨书
2014/09/13 职场文书
小学五年级语文上册教学计划
2015/01/22 职场文书
工作失职检讨书
2015/01/26 职场文书
安全生产标语口号
2015/12/26 职场文书
2016党员党课心得体会
2016/01/07 职场文书