在同一窗体中使用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开发入门教程之面向对象
Dec 05 PHP
生成卡号php代码
Apr 09 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
Dec 05 PHP
CentOS6.5 编译安装lnmp环境
Dec 21 PHP
php微信公众开发之获取周边酒店信息的方法
Dec 22 PHP
PHP中开启gzip压缩的2种方法
Jan 31 PHP
PHP的Yii框架使用中的一些错误解决方法与建议
Aug 21 PHP
8个必备的PHP功能开发
Oct 02 PHP
ThinkPHP使用Smarty第三方插件方法小结
Mar 19 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
May 31 PHP
超强多功能php绿色集成环境详解
Jan 25 PHP
PHP简单实现二维数组的矩阵转置操作示例
Nov 24 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
十大催泪虐心动漫,你能坚持看到第几部?
2020/03/04 日漫
php验证邮箱和ip地址最简单方法汇总
2015/10/30 PHP
PHP开发中AJAX技术的简单应用
2015/12/11 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
2018/10/12 PHP
laravel 解决强制跳转 https的问题
2019/10/22 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
JavaScript中的其他对象
2008/01/16 Javascript
JsDom 编程小结
2011/08/09 Javascript
jquery 缓存问题的几个解决方法
2013/11/11 Javascript
使用JSLint提高JS代码质量方法分享
2013/12/16 Javascript
使用js dom和jquery分别实现简单增删改
2014/09/11 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
2016/01/28 Javascript
jQuery页面加载初始化的3种方法(推荐)
2016/06/02 Javascript
JQuery实现动态操作表格
2017/01/11 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
vue上传图片到oss的方法示例(图片带有删除功能)
2018/09/27 Javascript
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
2019/07/19 Javascript
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
python文件写入实例分析
2015/04/08 Python
django初始化数据库的实例
2018/05/27 Python
python制作朋友圈九宫格图片
2019/11/03 Python
python爬虫模块URL管理器模块用法解析
2020/02/03 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
Schutz鞋官方网站:Schutz Shoes
2017/12/13 全球购物
求职推荐信范文
2013/12/01 职场文书
2014年迎新年活动方案
2014/02/19 职场文书
写字楼租赁意向书
2014/07/30 职场文书
骨干教师考核评语
2014/12/31 职场文书
解除同居协议书
2015/01/29 职场文书
2015年办税服务厅工作总结
2015/07/23 职场文书
pytorch实现ResNet结构的实例代码
2021/05/17 Python