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框架Phpbean说明
Jan 10 PHP
PHP Squid中可缓存的动态网页设计
Sep 17 PHP
php array_filter除去数组中的空字符元素
Jun 21 PHP
php摘要生成函数(无乱码)
Feb 04 PHP
php判断输入是否是纯数字,英文,汉字的方法
Mar 05 PHP
Laravel框架实现发送短信验证功能代码
Jun 06 PHP
php封装一个异常的处理类
Jun 08 PHP
php curl上传、下载、https登陆实现代码
Jul 23 PHP
PHP使用mongoclient简单操作mongodb数据库示例
Feb 08 PHP
PHP获取ttf格式文件字体名的方法示例
Mar 06 PHP
PHP单元测试配置与使用方法详解
Dec 27 PHP
PHP终止脚本运行三种实现方法详解
Sep 01 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&amp;&amp;mysql)四
2006/10/09 PHP
joomla内置的表单验证功能使用方法
2010/06/11 PHP
php有效防止同一用户多次登录
2015/11/19 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
PHP处理数组和XML之间的互相转换
2016/06/02 PHP
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
jQuery插件jQuery-JSONP开发ajax调用使用注意事项
2013/11/22 Javascript
通用javascript代码判断版本号是否在版本范围之间
2015/11/29 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
深入理解JS正则表达式---分组
2016/07/18 Javascript
jQuery悬停文字提示框插件jquery.tooltipster.js用法示例【附demo源码下载】
2016/07/19 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
Angularjs按需查询实例代码
2017/10/30 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
Angular网络请求的封装方法
2018/05/22 Javascript
vue data恢复初始化数据的实现方法
2019/10/31 Javascript
使用PDB简单调试Python程序简明指南
2015/04/25 Python
python中将函数赋值给变量时需要注意的一些问题
2017/08/18 Python
Python各类图像库的图片读写方式总结(推荐)
2018/02/23 Python
numpy返回array中元素的index方法
2018/06/27 Python
django与小程序实现登录验证功能的示例代码
2019/02/19 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
tensorflow mnist 数据加载实现并画图效果
2020/02/05 Python
使用Python+selenium实现第一个自动化测试脚本
2020/03/17 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
CSS3中的Media Queries学习笔记
2016/05/23 HTML / CSS
canvas如何绘制钟表的方法
2017/12/13 HTML / CSS
《藤野先生》教学反思
2014/02/19 职场文书
餐厅总厨求职信
2014/03/04 职场文书
供货协议书范本
2014/04/22 职场文书
学校党的群众路线教育实践活动对照检查材料
2014/09/24 职场文书
乡镇务虚会发言材料
2014/10/20 职场文书
2014年政协工作总结
2014/12/09 职场文书
医务人员岗前培训心得体会
2016/01/08 职场文书
JAVA SpringMVC实现自定义拦截器
2022/03/16 Python
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技