在同一窗体中使用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自动更新新闻DIY
Oct 09 PHP
php实现从ftp服务器上下载文件树到本地电脑的程序
Feb 10 PHP
PHP实现异步调用方法研究与分享
Oct 27 PHP
PHP中将字符串转化为整数(int) intval() printf() 性能测试
Mar 20 PHP
Linux下安装PHP MSSQL扩展教程
Oct 24 PHP
利用PHP如何实现Socket服务器
Sep 23 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
Apr 17 PHP
Yii2中使用asset压缩js,css文件的方法
Nov 24 PHP
PHP批量修改文件名称的方法分析
Feb 27 PHP
利用php操作memcache缓存的基础方法示例
Aug 02 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
May 23 PHP
php装饰者模式简单应用案例分析
Oct 23 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中file_get_contents高?用法实例
2014/09/24 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
2019/10/21 PHP
js判断浏览器的比较全的代码
2007/02/13 Javascript
textarea的value是html文件源代码,存成html文件的代码
2007/04/20 Javascript
jquery 图片Silhouette Fadeins渐显效果
2010/02/07 Javascript
jQuery源码解读之removeClass()方法分析
2015/02/20 Javascript
JavaScript数组对象实现增加一个返回随机元素的方法
2015/07/27 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
jQuery为DOM动态追加事件的方法
2017/02/16 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
2019/08/15 Javascript
微信小程序实现蒙版弹出窗功能
2019/09/17 Javascript
vue 解决数组赋值无法渲染在页面的问题
2019/10/28 Javascript
JavaScript实现拖拽效果
2020/03/16 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
[03:16]DOTA2完美大师赛小组赛精彩集锦
2017/11/22 DOTA
Python3中lambda表达式与函数式编程讲解
2019/01/14 Python
Python对ElasticSearch获取数据及操作
2019/04/24 Python
用python建立两个Y轴的XY曲线图方法
2019/07/08 Python
django做form表单的数据验证过程详解
2019/07/26 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
2019/12/11 Python
python 实现读取csv数据,分类求和 再写进 csv
2020/05/18 Python
如何使用html5与css3完成google涂鸦动画
2012/12/16 HTML / CSS
Vilebrequin美国官方网上商店:法国豪华泳装品牌
2020/02/22 全球购物
最新大学生自我评价
2013/09/24 职场文书
优秀员工个人的自我评价
2013/11/29 职场文书
安全生产活动月方案
2014/03/09 职场文书
公证书标准格式
2014/04/10 职场文书
住宅质量保证书
2014/04/29 职场文书
班级标语大全
2014/06/21 职场文书
2014大学生职业生涯规划书最新范文
2014/09/13 职场文书
公务员廉洁从政心得体会
2016/01/19 职场文书
优秀的商业计划书,让融资一步到位
2019/05/07 职场文书
2019年最新版见习人员管理制度!
2019/07/08 职场文书