1、网页中页面之间值的传递和接收网页中页面之间值的传递和接收在网页编程(如 php,asp)中常常涉及到页面之间值的传递接收问题。它是网页编程中一项基本的重要的必须掌握的知识点。它包括页面间值传递方式有哪些,哪些变量会传到目的页面,这些变量的值是什么,以及在目的页面中如何接收这些变量的值这些问题。深刻了解这些知识内容,对灵活地实现编程效果是很重要的。首先,我来讲一下网页间值传递方式。在有些书上把页面之间值传递按表单传递分 get 和 post 两种方式。我认为这样分不完整,不全面。而我根据自己的一些经验把网页之间值的传递归分为显现式和隐含式两种方式觉得这样更确切。所谓显现式就是值在传递到目的页面的
2、过程时,在浏览器的地址栏中页面地址后面会显示这些变量参数。隐含式方式参数是不会出现地址栏上的,所以具有安全性。如果要传如下表(变量表 1)的变量传到目的页面。变量名:first idname password值: yes baorongabc 12345表 变量表 1那么如何用显现式和隐含式实现呢?下面就是具体实现方法:显现式:1 在程序中写入,如:文章发表2.通过表单递交的 get 方式此方式当按钮被按下后,表单的数据会附加在网址之后一起送到 server。执行效率高,但可传送的数据只有 2k 左右。程序如下程序代码(程序 1):标签中代码:单行文本框 first 的 html 代码:单行文
3、本框 idname 的 html 代码:单行文本框 password 的 html 代码:标准按钮 html 代码:隐含式:通过表单递交的 post 方式,此方式浏览器会等待 server 来读取数据,传送的数据量没有限制,数据不会出现地址栏上具有安全性。只要把程序 1 中 method=“get“改成 method=“post“,即:如果把程序 1 中标签中改成如下代码:在按提交按钮后那么在 mytest_perform.php 页面中可接收到六个变量的值,如下表(变量表 2) 。变量名:first idname password var1 var2 var3值: yes baorongab
4、c 12345 yes baorongabc 12345表 变量表 2表单与地址栏的结合使用是很有用一种编程手段,我以后在具体例子会讲到。其次 哪些变量会传到目的页面,这些变量的值是什么以及如何接收?从上面对页面间值传递方式的阐述,我想大家的那些变量可传到下一页应该有些了解了吧。总结起来可分为表单的内容和跟随在网页地址后面的参数这两大类,他们都会传到目的页面。不管在表单中对象名和网页地址后面的变量参数名相同那么传递到接收页面值是一个对象变量的值和变量参数值,其他变量值被覆盖。最终是哪一个变量的值,在同一个表单中对象名相同那么上一个对象的值被后面同名对象值覆盖。其他如何覆盖情况请读者自己去试验。
5、请大家注意,表单对象变量的值只有在通过按钮提交到目的页面才会传递,如在同一页面中有其他超连和表单提交同时存在,而你是通过按超连转到目的页面,那么这个页面是不会接收到表单对象变量的。由于表单的对象值传递比较复杂,而网页地址后面的参数传递是比较简单。我重点介绍一下表单的对象值的传递的问题:表单中的对象有;按钮(标准按钮,图形按钮) ,文本框(单行文本框,多行文本框) ,单选按钮,复选框,多行文本框,下拉菜单(可复选的和不可复选) ,隐含字段。复选框 html 代码:单选按钮 html 代码:不可复选下拉菜单 html 代码: s1s2可复选下拉菜单 html 代码: s1s2s3隐藏字段 html
6、 代码: 超连 html 代码: 连接标准按钮 html 代码:重新还原标准按钮:提交标准按钮: 一般标准按钮: 按钮式图片 html 代码:图片式按钮 html 代码:提交图片式按钮:重新还原图片式按钮:一般图片式按钮: 程序代码 2最后 讲讲如何接收对于变量的问题由于在每个编程语言的不同,所以书写格式会有所不同。但基本上是相似的,即在表单对象值的传递中,接收的变量名是 name=后面的字符:值是 value=后面的字符。下面我讲一下 php 和 asp 两种编程语言的书写方式:在 asp 中变量名的接收:request(“变量名“)receive_idname = request(“idn
7、ame“) asp 中的 request 对象 在 php 中变量名的接收: 变量名 下面对表单中具体对象取值进行讲述:文本框:值是输入的文本框的值或初值。复选框,单选按钮:如果选中,值是 value=后面的字符,在表单提交时未选,值为空。下拉菜单:值是选中中 value=后面的字符。标准按钮:有三种类型:submit 按钮,reset 按钮,none 按钮只有按 submit 按钮才会提交,reset 按钮使表单还原初始状态,none 按钮不做任何处理,其实它可作为用于编程操作。如果在同一表单中有多个 submit 按钮,只会传递按下那个submit 按钮对象变量的值。以上对象变量值的接收比
8、较简单,下面介绍一些特殊对象:按钮式图片:代码如下:按下图片按钮时是把鼠标光标的 x,y 坐标值都返回 web 服务器 .值: 鼠标光标在图片的 x,y 值。在 asp 中可以如此接收此类变量:receive_imagex = request(“image.x“)receive_imagey = request(“image.y“)在 php 中“.”是字符串连接符号,就不能用上面这种变量名书写方式,应写成如下方式:receive_imagex =image_xreceive_imagey =image_y随便说一下:在 asp 中字符串连接符号是“idname.“bb“;(asp)(php)
9、图片式按钮:提交按钮:代码如下:重新还原按钮:代码如下:一般按钮:代码如下:也是提交按钮才会提交,各按钮的功能与标准按钮相同,不重复叙述。但注意接收页面接收“变量名”提交按钮的值是 “”这与器表单对象很是不同。复选下拉框:还有要讲的是:对于复选下拉框的变量接收在 asp 和 php 中是有所不同。在表单的复选下拉菜单,html 代码如下: s1s2s3如果选择多个选项怎样接收每个变量:例如:在表单递交时选择是 s1 和 s3 选项在 asp 中的实现方法:Rlist=request(“list“)接收到数据为:sz1, sz3,两项之间以 “,及空格”分隔。把两项分开的程序如下:Rlist=request(“list“)CRlist=Splist(list, “,“)For I=0 to Ubound(CRlist) Next在 php 中如何实现:只要把改为:我在 php 中,写出如下代码:echo “list0=“;echo list0.“;echo “list2=“;echo list2.“;结果:list0=sz1list2=sz3讲了这么多希望读者对网页编程中页面之间值的传递接收问题有初步印象,以后有机会可以通过实例来具体说明这些问题。并在其中介绍一些使用技巧:如一些隐藏字段的应用,显现式和隐含式两种方式结合使用,传递值的动态变化等等。