在同一窗体中使用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读取PDF内容配合Xpdf的使用
Nov 24 PHP
php实例分享之html转为rtf格式
Jun 02 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
Feb 16 PHP
php实现通用的信用卡验证类
Mar 24 PHP
护卫神php套件 php版本升级方法(php5.5.24)
May 10 PHP
php根据一个给定范围和步进生成数组的方法
Jun 19 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
Jul 14 PHP
PHP实现随机生成水印图片功能
Mar 22 PHP
Mac下php 5升级到php 7的步骤详解
Apr 26 PHP
laravel框架关于搜索功能的实现
Mar 15 PHP
php和vue配合使用技巧和方法
May 09 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
Apr 13 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 高手之路(二)
2006/10/09 PHP
PHP生成HTML静态页面实例代码
2008/08/31 PHP
PHP Curl出现403错误的解决办法
2014/05/29 PHP
codeigniter数据库操作函数汇总
2014/06/12 PHP
PHP处理Json字符串解码返回NULL的解决方法
2014/09/01 PHP
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
php实现的二分查找算法示例
2017/06/20 PHP
IE event.srcElement和FF event.target 功能比较
2010/03/01 Javascript
js substr支持中文截取函数代码(中文是双字节)
2013/04/17 Javascript
jQuery设置div一直在页面顶部显示的方法
2013/10/24 Javascript
jquery.qtip提示信息插件用法简单实例
2016/06/17 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
2017/05/12 Javascript
JavaScript用二分法查找数据的实例代码
2017/06/17 Javascript
JS仿QQ好友列表展开、收缩功能(第一篇)
2017/07/07 Javascript
浅谈express 中间件机制及实现原理
2017/08/31 Javascript
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
2018/07/13 Javascript
vue.js 添加 fastclick的支持方法
2018/08/28 Javascript
Bootstrap实现模态框效果
2019/09/30 Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
2019/11/19 Javascript
Python psutil模块简单使用实例
2015/04/28 Python
在python3环境下的Django中使用MySQL数据库的实例
2017/08/29 Python
python距离测量的方法
2018/03/06 Python
Python3读取Excel数据存入MySQL的方法
2018/05/04 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
2019/10/01 Python
关于python pycharm中输出的内容不全的解决办法
2020/01/10 Python
Sentry错误日志监控使用方法解析
2020/11/12 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
文秘专业自荐信
2013/10/14 职场文书
教师找工作推荐信
2013/11/23 职场文书
小学生暑假感言
2014/02/06 职场文书
职业规划实施方案
2014/06/10 职场文书
学校师德师风自我剖析材料
2014/09/29 职场文书
团委副书记工作总结
2015/08/14 职场文书
留学文书中的个人陈述,应该注意哪些问题?
2019/08/23 职场文书
浅谈mysql返回Boolean类型的几种情况
2021/06/04 MySQL