在同一窗体中使用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 相关文章推荐
Ha0k 0.3 PHP 网页木马修改版
Oct 11 PHP
php下连接mssql2005的代码
Jan 17 PHP
php设计模式 Interpreter(解释器模式)
Jun 26 PHP
PHP和JAVA中的重载(overload)和覆盖(override) 介绍
Mar 01 PHP
php缓冲 output_buffering和ob_start使用介绍
Jan 30 PHP
php socket实现的聊天室代码分享
Aug 16 PHP
Laravel 4.2 中队列服务(queue)使用感受
Oct 30 PHP
thinkphp多层MVC用法分析
Dec 30 PHP
PHP结合Jquery和ajax实现瀑布流特效
Jan 07 PHP
Symfony生成二维码的方法
Feb 04 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
PHP实现通过CURL上传文件功能示例
May 30 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
PHP4实际应用经验篇(9)
2006/10/09 PHP
实用函数2
2007/11/08 PHP
php中文字母数字验证码实现代码
2008/04/25 PHP
php 函数使用方法与函数定义方法
2010/05/09 PHP
php+xml编程之xpath的应用实例
2015/01/24 PHP
php实现异步数据调用的方法
2015/12/24 PHP
浅谈PHP eval()函数定义和用法
2016/06/21 PHP
php实现的http请求封装示例
2016/11/08 PHP
一些常用的Javascript函数
2006/12/22 Javascript
jQuery 研究心得 取得属性的值
2007/11/30 Javascript
封装了一个支持匿名函数的Javascript事件监听器
2014/06/05 Javascript
JavaScript实现信用卡校验方法
2015/04/07 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
2015/07/08 Javascript
详解Vue中使用Echarts的两种方式
2018/07/03 Javascript
three.js实现圆柱体
2018/12/30 Javascript
vue中子组件传递数据给父组件的讲解
2019/01/27 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
2019/03/28 Javascript
ES6 Array常用扩展的应用实例分析
2019/06/26 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
tensorflow实现简单的卷积神经网络
2018/05/24 Python
Python分支语句与循环语句应用实例分析
2019/05/07 Python
django自带serializers序列化返回指定字段的方法
2019/08/21 Python
python实现智能语音天气预报
2019/12/02 Python
python使用html2text库实现从HTML转markdown的方法详解
2020/02/21 Python
微信小程序canvas实现水平、垂直居中效果
2020/02/05 HTML / CSS
美国在线肉类和海鲜配送:Crowd Cow
2020/10/02 全球购物
岗位廉洁从业承诺书
2014/03/28 职场文书
优秀驾驶员先进事迹材料
2014/05/04 职场文书
节水标语大全
2014/06/11 职场文书
大学生找工作求职信
2014/07/09 职场文书
观看焦裕禄观后感
2015/06/09 职场文书
呐喊读书笔记
2015/06/30 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书