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 11 PHP
php 获取select下拉列表框的值
May 08 PHP
openPNE常用方法分享
Nov 29 PHP
有关PHP中MVC的开发经验分享
May 17 PHP
浅谈PHP强制类型转换,慎用!
Jun 06 PHP
CURL状态码列表(详细)
Jun 27 PHP
php输入流php://input使用示例(php发送图片流到服务器)
Dec 25 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
Nov 14 PHP
浅析php适配器模式(Adapter)
Nov 25 PHP
php常用表单验证类用法实例
Jun 18 PHP
php中 ob_start等函数截取标准输出的方法
Jun 22 PHP
Yii+MYSQL锁表防止并发情况下重复数据的方法
Jul 14 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
给多个地址发邮件的类
2006/10/09 PHP
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
PHP--用万网的接口实现域名查询功能
2012/12/13 PHP
php中文验证码实现方法
2015/06/18 PHP
PHP截取IE浏览器并缩小原图的方法
2016/03/04 PHP
Smarty缓存机制实例详解【三种缓存方式】
2019/07/20 PHP
PHP哈希表实现算法原理解析
2020/12/11 PHP
javascript 出生日期和身份证判断大全
2008/11/13 Javascript
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
2010/09/14 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
浅谈jquery点击label触发2次的问题
2016/06/12 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
整理关于Bootstrap表单的慕课笔记
2017/03/29 Javascript
mint-ui的search组件在键盘显示搜索按钮的实现方法
2017/10/27 Javascript
ajax请求+vue.js渲染+页面加载的示例
2018/02/11 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
vue-router3.0版本中 router.push 不能刷新页面的问题
2018/05/10 Javascript
django传值给模板, 再用JS接收并进行操作的实例
2018/05/28 Python
带你认识Django
2019/01/15 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
2019/06/03 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
python装饰器相当于函数的调用方式
2019/12/27 Python
关于tf.TFRecordReader()函数的用法解析
2020/02/17 Python
Python扫描端口的实现
2021/01/25 Python
HTML5本地存储和本地数据库实例详解
2017/09/05 HTML / CSS
java程序员面试交流
2012/11/29 面试题
项目资料员岗位职责
2013/12/10 职场文书
采购部部长岗位职责
2014/02/06 职场文书
计生专干事迹
2014/05/28 职场文书
设备售后服务承诺书
2014/05/30 职场文书
2015年校医个人工作总结
2015/07/24 职场文书
文书工作总结(范文)
2019/07/11 职场文书
90条交通安全宣传标语
2019/10/12 职场文书
将Python代码打包成.exe可执行文件的完整步骤
2021/05/12 Python