PHP学习笔记(六)——自提交

上一篇 / 下一篇  2006-12-31 10:08:29 / 个人分类:开发相关

自提交是指在单个脚本中把一个或多个表单以及表单处理程序组合在一起,使用HTMLFORM标准一次或多次把数据提交给该脚本。可以用最简单的方法实现自提交:在FORM标记中把自己指定为ACTION目标,如

   <FORM METHOD=”POST” ACTION=”myself.php”>

 

或者使用PHP内置的独特特性:

<FORM METHOD=”POST” ACTION=”<?php print(“$PHP_SELF”); ?>”>

 

提示:虽然可以选择只使用文件的路径名,但是在UNIX中内置的变量$PHP_SELF更好。如果重新命名或者移动文件(不必说,要移到能使用PHP的目录中),那么能继续正确地处理文件。另一方面,也有关于这个预定义的变量有问题的报告。

      自提交的最大优点是,可以在HTML表单中建立更标准的逻辑。例如,依赖于形成请求的地点显示稍微不同的表单。或者有时遇到这样的情况,HTML表单只能有一个ACTION属性目标——意味着每个表单只能把数据发送给一个表单处理程序。而使用PHP,可以根据访问者自己设置的首选项有差别的处理表单。

      自提交有时需要考虑更强大的功能和灵活性,因此事情就变得有点复杂了,因此需要提到几个技巧:

      最有用的技巧是隐藏的阶段变量。这样能跟踪出表单把值提交给自己多少次,从而得出已经到了多阶段进程的哪个阶段。程序员需要使用这样的变量(它可以被命名为任何内容,使用字符串类型比整数类型好)指示出是否应该调用表单和/或脚本的表单处理程序部分。

      自提交表单的另一个问题是导航。在传统的HTML表单中,导航是严格单向的:从表单到处理程序,再到设计者规定的任何导航设备(如果有)。但是自提交的表单不需要遵守这个规则。在每个单独的实例中,需要确定:

l        用户是否可以多次重新提交全部或部分表单

l        是否由用户决定何时移动表单,还是表单自动使用户移动

l        以隐藏方式还是以显示方式把变量传递给下一页

l        是否控制用户下一步转到那里或给用户多种选择

这些问题的答案将确定是否需要控制、需要另一个表单、需要简单的链接还是多个链接。

 

提示:无论决定如何进行导航,都要记住,要提供大量文本,清除地解释在每一步将要发生什么事情。因为PHP对表单给出了如此的灵活性,因此新用户的默认期望值可能会错误,结束时不确定是否能结束表单的任务。


TAG: 开发相关

 

评分:0

我来说两句

Open Toolbar