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 相关文章推荐
PHP5 安装方法
Oct 09 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
Apr 09 PHP
PHP COOKIE及时生效的方法介绍
Feb 14 PHP
PHP定时任务延缓执行的实现
Oct 08 PHP
PHP图片自动裁切应付不同尺寸的显示
Oct 16 PHP
php之curl设置超时实例
Nov 03 PHP
PHP SPL标准库中的常用函数介绍
May 11 PHP
深入理解PHP中的Streams工具
Jul 03 PHP
PHP使用逆波兰式计算工资的方法
Jul 29 PHP
Yii视图CGridView列表用法实例分析
Jul 12 PHP
php实现页面纯静态的实例代码
Jun 21 PHP
laravel获取不到session的三种解决办法【推荐】
Sep 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符合PSR编程规范的实例分享
2016/12/21 PHP
详解PHP中mb_strpos的使用
2018/02/04 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
jquery 滚动条事件简单实例
2013/07/12 Javascript
jQuery中:nth-child选择器用法实例
2014/12/31 Javascript
js上传图片及预览功能实例分析
2015/04/24 Javascript
JavaScript实现梯形乘法表的方法
2015/04/25 Javascript
一个仿微博登陆邮箱提示框js开发案例
2016/07/28 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
2016/12/11 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
angular2路由切换改变页面title的示例代码
2017/08/23 Javascript
vue-router 导航钩子的具体使用方法
2017/08/31 Javascript
深入理解JavaScript 中的执行上下文和执行栈
2018/10/23 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
es6中比较有用的7个技巧小结
2019/07/12 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
2019/08/17 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
Node.js 中如何收集和解析命令行参数
2021/01/08 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
总结Python编程中函数的使用要点
2016/03/20 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
pandas通过字典生成dataframe的方法步骤
2019/07/23 Python
python通过链接抓取网站详解
2019/11/20 Python
Python接口测试get请求过程详解
2020/02/28 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
2020/04/24 Python
jenkins+python自动化测试持续集成教程
2020/05/12 Python
python 元组的使用方法
2020/06/09 Python
HTML5 video循环播放多个视频的方法步骤
2020/08/06 HTML / CSS
销售副总经理岗位职责
2013/12/11 职场文书
应急处置方案
2014/06/16 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
学校群众路线专项整治方案
2014/10/31 职场文书