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 相关文章推荐
基于文本的访客签到簿
Oct 09 PHP
用DBSQL类加快开发MySQL数据库程序的速度
Oct 09 PHP
一个数据采集类
Feb 14 PHP
编写安全 PHP应用程序的七个习惯深入分析
Jun 08 PHP
php中mysql连接和基本操作代码(快速测试使用,简单方便)
Apr 25 PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
Jun 27 PHP
php使用GD库创建图片缩略图的方法
Jun 10 PHP
深入浅析PHP无限极分类的案例教程
May 09 PHP
浅谈PHP的反射机制
Dec 15 PHP
php处理抢购类功能的高并发请求
Feb 08 PHP
PHP下载大文件失败并限制下载速度的实例代码
May 10 PHP
PHP实现提高SESSION响应速度的几种方法详解
Aug 09 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
Access数据库导入Mysql的方法之一
2006/10/09 PHP
PHP 程序员应该使用的10个组件
2009/10/31 PHP
php自定文件保存session的方法
2014/12/10 PHP
写一段简单的PHP建立文件夹代码
2015/01/06 PHP
文件上传之SWFUpload插件(代码)
2015/07/30 PHP
Yii实现显示静态页的方法
2016/04/25 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
用于table内容排序
2006/07/21 Javascript
jquery下onpropertychange事件的绑定方法
2010/08/01 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
JavaScript声明变量名的语法规则
2015/07/10 Javascript
jQuery插件制作的实例教程
2016/05/16 Javascript
解决Angular.Js与Django标签冲突的方案
2016/12/20 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
Vue.js常用指令之循环使用v-for指令教程
2017/06/27 Javascript
利用Vue构造器创建Form组件的通用解决方法
2018/12/03 Javascript
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
JS+canvas五子棋人机对战实现步骤详解
2020/06/04 Javascript
打包发布Python模块的方法详解
2016/09/18 Python
Python正则表达式经典入门教程
2017/05/22 Python
Python+树莓派+YOLO打造一款人工智能照相机
2018/01/02 Python
python和pygame实现简单俄罗斯方块游戏
2021/02/19 Python
python机器学习之KNN分类算法
2018/08/29 Python
详解pandas删除缺失数据(pd.dropna()方法)
2019/06/25 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
2020/03/08 Python
python实现网页录音效果
2020/10/26 Python
预备党员思想汇报范文
2013/12/29 职场文书
2014年大学生自我评价
2014/01/19 职场文书
汽车专业求职信
2014/06/05 职场文书
学生会竞选演讲稿纪检部
2014/08/25 职场文书
销售员试用期自我评价
2014/09/15 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书
创业计划书之书店
2019/09/10 职场文书
在Python中如何使用yield
2021/06/07 Python
为什么代码规范要求SQL语句不要过多的join
2021/06/23 MySQL