PHP4实际应用经验篇(8)


Posted in PHP onOctober 09, 2006

作者:孙运动

你可能已经注意到,到目前为止,在我们给你的所有例子中,我们都是给你两个页面-一个单纯的具有表单的HTML页面,和另一个用来处理表单输入并产生相应输出的PHP脚本。然而,PHP提供了一种把那两个页面通过 $submit 变量结合在一起的文雅的方法

你已经知道,一旦一个表单提交给PHP脚本,所有的表单变量就变成了的PHP变量。现在,除了用户定义的变量外,在你每次点击表单的“提交(SUBMIT )”按扭的同时,也就创建了一个名为 $submit的变量。因此,通过测试该变量是否存在,聪明的程序员可以只使用一个页面来既初始化表单又产生提交后的输出。  

让我们给你示范一下-我们用一个页面来实现上面那个幸运甜饼例子,包括最初的选择日期页面和后面的幸运甜饼页面。我们假设新的PHP文件也叫"cookie.php"

--------------------------------------------------------------------------------
<  ?

if (!$submit)
{
// 如果$submit不存在, 这暗示表单还没有提交
// 所以显示第一个页面

?>

< html>
< head>
< style type="text/css">
td {font-family: Arial;}
< /style>
< /head>

< body>

< font face="Arial" size="+2">
The Amazing Fortune Cookie Generator
< /font>

< form method="GET" action="cookie.php">
< table cellspacing="5" cellpadding="5" border="0">

< tr>
< td align="center">
Pick a day
< /td>
< td align="right">
< select name="day">
< option value="Monday">Monday
< option value="Tuesday">Tuesday
< option value="Wednesday">Wednesday
< option value="Thursday">Thursday
< option value="Friday">Friday
< option value="Saturday">Saturday
< option value="Sunday">Sunday
< /select>
< /td>
< /tr>

< tr>
< tr>
< td colspan="2" align="center">
< input type="submit" name="submit" value="Hit me!">
< /td>
< /tr>
< /table>
< /form>
< /body>

< /html>

< ?
}
else
{

// 如果$submit 确实存在了,表单已经被提交了
// 所以使用switch()函数来处理

// 这里的决定变量是用户选择的日期
switch ($day)
  {

// 第一种情况
        case "Monday":
        $fortune = "当能找到使每件事做的复杂精彩的方法的时候,不要使它简单有效";
        break;

// 第一种情况
        case "Tuesday":
        $fortune = "生活是游戏的桥梁?-你一定施展某种巧计了。";
        break;

        case "Wednesday":
        $fortune = "什么能使头脑清醒的人生活在这个世界上永不发疯?";
        break;

        case "Thursday":
        $fortune = "不要疯狂,要有趣";
        break;

        case "Friday":
        $fortune = "仅仅跟着时代走,顺着风气行,当你得到提升时你会发现类型是个魔鬼。";
        break;

// 如果以上条件都不符合...
        default:
        $fortune = "很抱歉,周末关门";
        break;

        }

?>

< html>
< head>
< basefont face="Arial">
< /head>

< body>
Here is your fortune for < ? echo $day; ?>:
< br>
< b>< ? echo $fortune; ?>< /b>

< /body>
< /html>

< ?
}
?>
--------------------------------------------------------------------------------

正如你所看到的,脚本首先测试 $submit变量是否存在,如果没找到,它将认为表单没有提交并且显示最初的日期选择列表。

由于< FORM>标签的 ACTION属性设为同一个 PHP脚本,一旦表单被提交,同一个脚本将被呼叫来处理表单的输入。然而,被呼叫后的这次$submit变量将已经存在了,所以将不再显示最初的页面,反而显示具有幸运甜饼的页面了。

注意为了使这些能正常工作,你的

--------------------------------------------------------------------------------
< input type="submit">
--------------------------------------------------------------------------------

必须有一个赋予"submit"值的NAME属性。

--------------------------------------------------------------------------------
< input type="submit" name="submit">
--------------------------------------------------------------------------------

PHP 相关文章推荐
array_multisort实现PHP多维数组排序示例讲解
Jan 04 PHP
PHP的SQL注入实现(测试代码安全不错)
Feb 27 PHP
优化PHP程序的方法小结
Feb 23 PHP
php版本的cron定时任务执行器使用实例
Aug 19 PHP
PHP遍历数组的三种方法及效率对比分析
Feb 12 PHP
PHP时间和日期函数详解
May 08 PHP
php实现的验证码文件类实例
Jun 18 PHP
Java中final关键字详解
Aug 10 PHP
php简单统计在线人数的方法
May 10 PHP
用php+ajax新建流程(请假、进货、出货等)
Jun 11 PHP
PDO::inTransaction讲解
Jan 28 PHP
PHP copy函数使用案例代码解析
Sep 01 PHP
一个简单的MySQL数据浏览器
Oct 09 #PHP
PHP生成便于打印的网页
Oct 09 #PHP
PHP4实际应用经验篇(5)
Oct 09 #PHP
数据库的日期格式转换
Oct 09 #PHP
PHP个人网站架设连环讲(四)
Oct 09 #PHP
用PHP+java实现自动新闻滚动窗口
Oct 09 #PHP
如何将数据从文本导入到mysql
Oct 09 #PHP
You might like
用PHP编写PDF文档生成器
2006/10/09 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
2018/04/24 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
xml 与javascript结合的问题解决方法
2007/03/24 Javascript
jquery 结合C#后台的数组对文章的关键字自动添加链接的代码
2011/07/15 Javascript
jquery 循环显示div的示例代码
2013/10/18 Javascript
JavaScript SetInterval与setTimeout使用方法详解
2013/11/15 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
表单元素值获取方式js及java方式的简单实例
2016/10/15 Javascript
jQuery完成表单验证的实例代码(纯代码)
2017/09/30 jQuery
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
解决echarts数据二次渲染不成功的问题
2020/07/20 Javascript
如何在vue中使用HTML 5 拖放API
2021/01/14 Vue.js
vue使用过滤器格式化日期
2021/01/20 Vue.js
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
Python可变参数函数用法实例
2015/07/07 Python
详解Python nose单元测试框架的安装与使用
2017/12/20 Python
Python Flask框架扩展操作示例
2019/05/03 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
2020/02/27 Python
python判断两个序列的成员是否一样的实例代码
2020/03/01 Python
python有几个版本
2020/06/17 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
Python实现画图软件功能方法详解
2020/07/28 Python
使用tensorflow进行音乐类型的分类
2020/08/14 Python
Python 实现二叉查找树的示例代码
2020/12/21 Python
介绍一下grep命令的使用
2012/06/28 面试题
建筑施工员岗位职责
2013/11/26 职场文书
商务主管岗位职责
2013/12/08 职场文书
京剧自荐信
2014/01/26 职场文书
关于中国梦的演讲稿
2014/04/23 职场文书
群众路线问题查摆对照检查材料
2014/10/04 职场文书
2017年寒假社区服务活动总结
2016/04/06 职场文书
Python+Appium自动化测试的实战
2021/06/30 Python