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

 更新时间:2008年05月08日 22:23:20   作者:  
在PHP中的处理窗体数据比其它网页程序语言更简单——如果你使用这种语言一段时间后,你会发现这是一个不可争辩的事实。这种操作的简易性使它可以容易地处理更为复杂的窗体事件,包括今天讨论的主题,即在同一个窗体中通过多个按钮来处理不同的任务。

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

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

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

以上所有任务都要通过一个独立窗体来处理,这样就需要相应的按钮来响应这些任务。传入到窗体的数据将以不同的方式处理,这取决于被点击的按钮(借书/还书和成员记录相互关联;丢失/销售记录改变详细目录表)。由于一个窗体只能处理一个唯一的任务,但是相同的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的几个常用数字判断函数代码

    PHP的几个常用数字判断函数代码,主要包括双精度,整数,字符判断等
    2012-04-04
  • PHP JS Ip地址及域名格式检测代码

    PHP JS Ip地址及域名格式检测代码

    这篇文章主要介绍了php与js中检测ip地址及域名的函数,方便大家在写程序中检测ip与域名,需要的朋友可以参考下
    2013-09-09
  • php+Mysqli利用事务处理转账问题实例

    php+Mysqli利用事务处理转账问题实例

    这篇文章主要介绍了php+Mysqli利用事务处理转账问题的方法,实例分析了php+mysqli处理事务的提交与回滚的技巧,需要的朋友可以参考下
    2015-02-02
  • php获取Google机器人访问足迹的方法

    php获取Google机器人访问足迹的方法

    这篇文章主要介绍了php获取Google机器人访问足迹的方法,涉及正则匹配与预定义服务器变量的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • php异步多线程swoole用法实例

    php异步多线程swoole用法实例

    这篇文章主要介绍了php异步多线程swoole用法,以实例形式讲述了swoole的异步多线程特性,需要的朋友可以参考下
    2014-11-11
  • php图片加水印原理(超简单的实例代码)

    php图片加水印原理(超简单的实例代码)

    我看到网上有好多关于图片加水印的类,写的很好 ,我这里只是把相应的原理写下,具体需求,根据自己的情况来修改,很简单的,写的不好,高手见谅
    2013-01-01
  • PHP的消息通信机制测试实例

    PHP的消息通信机制测试实例

    这篇文章主要介绍了PHP的消息通信机制,结合实例形式分析了php消息通信的信息发送与获取相关操作技巧,需要的朋友可以参考下
    2016-11-11
  • 解决GD中文乱码问题

    解决GD中文乱码问题

    解决GD中文乱码问题...
    2007-02-02
  • PHP Token(令牌)设计

    PHP Token(令牌)设计

    PHP Token(令牌)设计 设计目标: 避免重复提交数据. 检查来路,是否是外部提交 匹配要执行的动作(如果有多个逻辑在同一个页面实现,比如新增,删除,修改放到一个PHP文件里操作) 这里所说的token是在页面显示的时候,写到FORM的一个隐藏表单项(type=hidden). token不可明文,如果是明文,那就太危险了,所以要采用一定的加密方式.密文要可逆.俺算法很白痴,所以采用了网上一个现成的方法.
    2008-03-03
  • 又一个php 分页类实现代码

    又一个php 分页类实现代码

    php 分页类代码,比较简单。
    2009-12-12

最新评论