PHP网站制作之进修用php创立多页表单
让好朋友来看看,嘿,看咱写的多棒,然后再在网上宣传一下。创立 固然,到这里并未停止。究竟,假如可以在一个页面上创立多个表单,为什么不克不及创立跨多页面的表单呢?不幸的是,用 HTTP从一页面传送数据到另外一页面其实不轻松。由于在 HTTP协定中没有内建机制以界说系列页面的概念。不外,仅需经由过程一些乖巧的技能,和PHP 某些有效的函数,咱们就能够不必花太多力量而冲破此限制。在此章节中,关头思惟在于把上一页面获得的输出存到下一页面表单的隐含变量中。当咱们在屏幕分歧页面切换时,代码也在页面间传递信息,每表单都含有上一个表单的数据。这个办法仿佛有点愚笨,不外就今朝情形而言是最为简捷的办法――且无需利用数据库或cookies。
料想当中的是咱们将扩大对变量$state的利用以顺应此特征。这恰是为何咱们曩昔进修了关于此技能的内容,而没有盘算利用更加复杂的体例处置单一页面中的多个表单。
为了便利起见,咱们将反复利用先前的表单典范。但此次咱们将将其拆分为两个页面,而非把有关乳酪的主要成绩跟用户称号放在统一页面之上。
由此会失掉三个函数而非两个。另外,对函数稍微改名以反应其内容上的改动。display_form() 现已更名为display_name()。
<?php
function display_name() {
global $PHP_SELF;
?>
<FORM TARGET="<?php echo $PHP_SELF; ?>" METHOD=GET>
Name: <INPUT TYPE=TEXT NAME="name"><BR>
<INPUT TYPE=HIDDEN NAME="stage" VALUE="cheese">
<INPUT TYPE=SUBMIT VALUE="Thanks!">
</FORM>
<?php
}
?>
与先前所引见的函数不异,但咱们先处理下一成绩,并把下一stage的称号改成 cheese以更明白地告之用户下一步要做甚么。
接上去是display_cheese()。
<?php
function display_cheese() {
global $PHP_SELF;
global $name;
?>
<FORM TARGET="<?php echo $PHP_SELF; ?>" METHOD=GET>
Favorite Cheese: <INPUT TYPE=RADIO NAME="cheese" VALUE="brie">Very soft French Brie
<INPUT TYPE=RADIO NAME="cheese" VALUE="cheddar">Farmhouse English Cheddar
<INPUT TYPE=RADIO NAME="cheese" VALUE="mozzarella">Italian Buffalo Mozzarella
Favorite Times to Eat Cheese: <INPUT TYPE=CHECKBOX NAME="times[]" VALUE="m">Morning
<INPUT TYPE=CHECKBOX NAME="times[]" VALUE="n">Noon
<INPUT TYPE=CHECKBOX NAME="times[]" VALUE="d">Dinner
<INPUT TYPE=CHECKBOX NAME="times[]" VALUE="l">Late night
<INPUT TYPE=HIDDEN NAME="name" VALUE="<?php echo htmlspecialchars($name); ?>">
<INPUT TYPE=HIDDEN NAME="stage" VALUE="results">
<INPUT TYPE=SUBMIT VALUE="Thanks!">
</FORM>
<?php
}
?>
以上的代码看起来应当十分熟习。除在输入埋没的stage元素前先输入上一局部数据中的 $name变量名及值以外,咱们没有做任何料想以外的修正。咱们并未直接输入变量值,而是经由过程一个名为htmlspecialchars()的PHP函数。在HTM中,有以下四个字符除被作为标志(markup)利用外,在其他中央不该被利用的:“<”、“>”、“"”、和“&”。因而,为了确保不使阅读器形成凌乱,咱们经由过程htmlspecialchars()函数利用$name变量。由此,某团体的名字原为"Bret & Jeff"就会成为"Brett & Jeff" 了。
如今,当提交此新表单时,不会漏掉任何信息。
以上技能的感化是咱们不用更改原process_form() 函数任何局部。现实上,咱们还会坚持函数称号不变。仅需对页面显示逻辑加上新的一行。
<?php
if (empty($stage)) { display_name(); }
elseif ($stage == 'cheese') { display_cheese(); }
else { process_form(); }
?>
看到了吗?咱们只需在先前的两个声明中到场elseif。这恰是利用变量$stage的奇妙的地方。假如咱们要再添加几个页面,只需写一个新函数以显示所要的内容,并当其显示时到场一行代码对其停止掌握便可。
HTML中的任何元素都要亲自实践,只有明白了什么元素会起到什么效果之后,你才会记忆深刻,而一味的啃书,绝对是不行的,我想大部分新手之所以觉得概念难学,大部分是一个字“懒”,懒是阻止进步的最大敌人,所以克服掉懒的习惯,才能更快的学好一样东西。 个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。 有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。 微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。 基础有没有对学习php没有太大区别,关键是兴趣。 这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己 这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 爱上php,他也会爱上你。 Ps:以上纯属原创,如有雷同,纯属巧合 实践是检验自己会不会的真理。 ,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。 真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎, 首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。 使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。 我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
页:
[1]
2