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 相关文章推荐
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
Sep 30 PHP
CodeIgniter php mvc框架 中国网站
May 26 PHP
Search File Contents PHP 搜索目录文本内容的代码
Feb 21 PHP
php邮件发送,php发送邮件的类
Mar 24 PHP
openPNE常用方法分享
Nov 29 PHP
php过滤HTML标签、属性等正则表达式汇总
Sep 22 PHP
php+mysql结合Ajax实现点赞功能完整实例
Jan 30 PHP
深入剖析PHP中printf()函数格式化使用
May 23 PHP
Yii2中cookie用法示例分析
Jul 18 PHP
php解决crontab定时任务不能写入文件问题的方法分析
Sep 16 PHP
PHP实现递归的三种方法
Jul 04 PHP
thinkphp 获取控制器及控制器方法
Apr 16 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发送与接收流文件的方法
2015/02/11 PHP
PHP获取访问页面HTTP状态码的实现代码
2016/11/03 PHP
PHP第三方登录―QQ登录实现方法
2017/02/06 PHP
PHP数据库操作二:memcache用法分析
2017/08/16 PHP
Laravel模型事件的实现原理详解
2018/03/14 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
2019/04/09 PHP
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
2010/03/24 Javascript
jQuery计算textarea中文字数(剩余个数)的小程序
2013/11/28 Javascript
js跳转页面方法总结
2014/01/29 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
JavaScript类型系统之基本数据类型与包装类型
2016/01/06 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
AngularJS辅助库browserTrigger用法示例
2016/11/03 Javascript
如何解决hover在ie6中的兼容性问题
2016/12/15 Javascript
微信公众号开发 实现点击返回按钮就返回到聊天界面
2016/12/15 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
原生JS实现简单放大镜效果
2017/02/08 Javascript
微信小程序实现页面下拉刷新和上拉加载功能详解
2018/12/03 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
微信小程序实现简单购物车功能
2020/12/30 Javascript
python通过函数属性实现全局变量的方法
2015/05/16 Python
Python调用C语言的方法【基于ctypes模块】
2018/01/22 Python
Pandas之ReIndex重新索引的实现
2019/06/25 Python
python多维数组分位数的求取方式
2020/03/03 Python
keras slice layer 层实现方式
2020/06/11 Python
橄榄树药房:OLIVEDA
2019/09/01 全球购物
天游软件面试
2013/11/23 面试题
.net软件工程师面试题
2015/03/31 面试题
个人委托书怎么写
2014/04/04 职场文书
初中同学会活动方案
2014/08/22 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
预备党员群众意见
2015/06/01 职场文书
2019暑期安全倡议书!
2019/06/27 职场文书
Redis遍历所有key的两个命令(KEYS 和 SCAN)
2021/04/12 Redis
我对PyTorch dataloader里的shuffle=True的理解
2021/05/20 Python