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 相关文章推荐
PHP编码规范之注释和文件结构说明
Jul 09 PHP
探讨fckeditor在Php中的配置详解
Jun 08 PHP
php.ini 配置文件的深入解析
Jun 17 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
May 09 PHP
PHP中shuffle数组值随便排序函数用法
Nov 21 PHP
php实现数组中索引关联数据转换成json对象的方法
Jul 08 PHP
深入浅析用PHP实现MVC
Mar 02 PHP
php实现文件管理与基础功能操作
Mar 21 PHP
PHP设计模式之模板方法模式定义与用法详解
Apr 02 PHP
lnmp安装多版本PHP共存的方法详解
Aug 02 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 PHP
CI框架简单分页类用法示例
Jun 06 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.MVC的模板标签系统(一)
2006/09/05 PHP
smarty的保留变量问题
2008/10/23 PHP
解析PHP将对象转换成数组的方法(兼容多维数组类型)
2013/06/21 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
2014/08/20 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
2016/01/28 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
2017/06/06 PHP
php通过header发送自定义数据方法
2018/01/18 PHP
Javascript 实现TreeView CheckBox全选效果
2010/01/11 Javascript
JS在textarea光标处插入文本的小例子
2013/03/22 Javascript
jQuery中:empty选择器用法实例
2014/12/30 Javascript
JavaScript中使用指数方法Math.exp()的简介
2015/06/15 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
Jquery+ajax+JAVA(servlet)实现下拉菜单异步取值
2016/03/23 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
2016/05/30 Javascript
微信小程序实现动态列表项的顺序加载动画
2019/07/25 Javascript
Javascript组合继承方法代码实例解析
2020/04/02 Javascript
vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作
2020/07/27 Javascript
js利用iframe实现选项卡效果
2020/08/09 Javascript
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
python使用正则表达式匹配字符串开头并打印示例
2017/01/11 Python
Python中asyncio与aiohttp入门教程
2018/10/16 Python
python爬取Ajax动态加载网页过程解析
2019/09/05 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
2020/02/28 Python
基于python获取本地时间并转换时间戳和日期格式
2020/10/27 Python
Django启动时找不到mysqlclient问题解决方案
2020/11/11 Python
python excel和yaml文件的读取封装
2021/01/12 Python
商务主管岗位职责
2013/12/08 职场文书
募捐倡议书
2014/04/14 职场文书
2014年政协委员工作总结
2014/12/01 职场文书
大学生自荐材料范文
2014/12/30 职场文书
历史名人教你十五个读书方法,赶快Get起来!
2019/07/18 职场文书
nginx对http请求处理的各个阶段详析
2021/03/31 Servers
如何理解PHP核心特性命名空间
2021/05/28 PHP
使用redis实现延迟通知功能(Redis过期键通知)
2021/09/04 Redis