文档章节

php与js变量传递

itfanr
 itfanr
发布于 2014/12/20 18:24
字数 1039
阅读 28
收藏 0
转自: http://www.phpzixue.cn/detail759.shtml 一.         表单传递 当一个表单提交给 php 脚本时,表单中的信息会自动在脚本中可用。 例: 一个简单的 HTML 表单 [php]</pre> <form></form> <pre>ion="foo.php" method="post"> Name: <input type="text" name="username" /> Email: <input type="text" name="email" /> <input type="submit" name="submit" value="Submit me!" /> [/php] 有很多种方法访问 HTML 表单中的数据。例如: 例:. 从一个简单的 POST HTML 表单访问数据 [php] <!--?php <br ?-->// 自 php 4.1.0 起可用 print $_POST['username']; print $_REQUEST['username']; imp<wbr />ort_request_variables('p', 'p_'); print $p_username; // 自 php 3 起可用 print $HTTP_POST_VARS['username']; // 如果 php 指令 register_globals = on 时可用。不过自 // php 4.2.0 起默认值为 register_globals = off。 // 不提倡使用/依赖此种方法。 print $username; ?> [/php] 使用 GET 表单也类似,只不过要用适当的 GET 预定义变量。 当提交表单时,可以用一幅图像代替标准的提交按钮,用类似这样的标记: <input type="image" src="image.gif" name="sub"> 当用户点击到图像中的某处时,相应的表单会被传送到服务器,并加上两个变量 sub_x 和 sub_y。它们包含了用户点击图像的坐标。有经验的用户可能会注意到被浏览器发送的实际变量名包含的是一个点而不是下划线,但 php 自动将点转换成了下划线。 二.         网址传递 <a href=”test.php?id=3&name=mike”>next</a> 可用 $_GET['id'] 和$_GET['name']访问GET 的数据。 三.         Cookie 传递 1、         设置Cookie 简单的: SetCookie("MyCookie", "Value of MyCookie"); 带失效时间的: SetCookie("WithExpire", "Expire in 1 hour", time()+3600);//3600秒=1小时 什么都有的: SetCookie("FullCookie", "Full cookie value", time()+3600, "/forum", ".phpuser.com", 1); 如果要设置同名的多个Cookie,要用数组,方法是: SetCookie("CookieArray[0]", "Value 1"); SetCookie("CookieArray[1]", "Value 2"); 2、         接收和处理Cookie echo $_COOKIE[‘MyCookie’]; echo $_COOKIE[‘CookieArray[0]’]; echo count($_COOKIE[‘CookieArray’]); 3、删除Cookie 要删除一个已经存在的Cookie,有两个办法: 一是调用只带有name参数的SetCookie,那么名为这个name的Cookie 将被从关系户机上删掉;另一个办法是设置Cookie的失效时间为time()或time()-1,那么这个Cookie在这个页面的浏览完之后就被删除了(其实是失效了)。 要注意的是,当一个Cookie被删除时,它的值在当前页在仍然有效的。 四.         Session传递 test1.php [php] <? session_start(); session_register("count"); echo $count=0; ?> [/php] test2.php [php] <? session_start(); echo $count++; ?> [/php] 经过实验发现,php4的session只对当前打开的浏览器窗口有效(至少在W2K下的 IE5和NS6中是这样)。下面的代码可以实现session的跨窗口执行。 test1.php [php] <? session_start(); session_register("count"); setcookie("phpSESSID",session_id(),time()+3600,"/","www.md.hl.cn"); echo $count=0; <span style="font-size: 0.857142857rem; line-height: 1.714285714;"> ?> </span> [/php] 五.         javascript变量传递到php脚本中 方法一: 先用php生成js代码,然后通过浏览器的自动刷新,将javascript变量传递到php脚本中。 [php] <!--?php <br ?--> if (isset($_GET['width']) AND isset($_GET['height'])) { // output the geometry variables echo "Screen width is: ". $_GET['width'] ."\n"; echo "Screen height is: ". $_GET['height'] ."\n"; } else { // pass the geometry variables // (preserve the original query string //    -- post variables will need to handled differently) echo "<script type="text/javascript" language="\&quot;javas<wbr">// <![CDATA[\n"; echo "   location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}" . "&width=\" + screen.width + \"&height=\" + screen.height;\n"; echo "// ]]></script>\n"; exit(); } ?> [/php] 方法二: 先用document.cookie方法把js变量写入cookie中,再用php取出。 这种方法适用于变量少的情况。 1. 在JAVASCRIPT中设置COOKIE:document.cookie="cookiename="+value+";path=/" 2. 在php中用$HTTP_COOKIE_VARS["cookiename"]的方式读取。 [php] <script type="text/javascript">// <![CDATA[ var name="myqq",value="66166457"; document.cookie=”myqq”+"="+value+";" // ]]></script> <!--?php echo "$_COOKIE[‘myqq’]\n"; $my="我的QQ是".$_COOKIE[‘myqq’]; echo $my; ?--> [/php] 方法三: 通过表单中的隐藏域的value属性将需要传递的变量通过提交表单传递给php。 [php] <script type="text/javascript">// <![CDATA[ function logon_sub(){ if( pass_check() ) { if(document.logon.f_over_clk.value=='0') { document.logon.f_over_clk.value='1'; document.logon.submit(); } } } // ]]></script></pre> <form name="logon"></form> <pre>ion="logon_do.php" method="post"> <a href="javas<wbr />cript:logon_sub();"><img alt="" src="../img/LogonBt_iu.gif" name="Logon" /></a> <input type="hidden" name="mullang" value="0" /> [/php] 在logon_do.php页面就可以用$_POST[‘mullang’]取得这个变量了。 六.多个页面之间传递数组 可以把数组转化成字符串,作为一个参数来传递: - file1.php [php] <? ... $arg=implode(";", $parm); $link="file2.php?arg=$arg"; ?> [/php] - file2.php [php] <? $parm=explode(";", $arg); ... ?> [/php]

© 著作权归作者所有

itfanr
粉丝 119
博文 486
码字总数 172696
作品 1
济南
程序员
私信 提问
javascript与php数据交换之json

这两天js跟php数据传递弄伤心了,特意整理一些资料,做个小结! json是js的一种数据格式,可以直接被js解析,当我们在结合php和javascript实现某些功能时,经常会用到它。php无法直接读取jso...

The-duke
2013/07/17
2.1K
3
JavaScript基础专题之参数传递(五)

按值传递 什么是按值传递呢? 把函数外部的值复制给函数内部的参数,就和把值从一个变量复制到另一个变量一样。 举个简单的例子: 当传递 到函数 box 中,相当于拷贝了一份 ,假设拷贝的这份...

ChrisPing
07/04
0
0
Yii2页面PHP控件中输出JS代码

Yii 2中的很多页面控件,是直接封装了现有的JS控件的,这些JS控件的基础数据类型的属性配置还比较简单,基本上在PHP中转换一下就可以直接设置了,但是对于属性值为函数的,就不能简单的传递一...

tywali
2017/11/01
302
0
PHP判断一个请求是Ajax请求还是普通请求

Javascript中大多数的框架如 jquery(jquery ui、jquery easyui)、Mootools 等,在发出 Ajax 请求时,都会发送额外的 HTTPXREQUESTED_WITH 头部信息,因此每当发送一个ajax请求你就可以在服务...

Junn
2013/08/05
7.5K
1
JavaScript 是如何工作的:JavaScript 的共享传递和按值传递

摘要: 原始数据类型和引用数据类型的副本作为参数传递给函数。 原文:JavaScript 是如何工作的:JavaScript 的共享传递和按值传递 作者:前端小智 Fundebug经授权转载,版权归原作者所有。 ...

Fundebug
04/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

最简单的获取相机拍照的图片

  import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import andr......

MrLins
15分钟前
1
0
说好不哭!数据可视化深度干货,前端开发下一个涨薪点在这里~

随着互联网在各行各业的影响不断深入,数据规模越来越大,各企业也越来越重视数据的价值。作为一家专业的数据智能公司,个推从消息推送服务起家,经过多年的持续耕耘,积累沉淀了海量数据,在...

个推
17分钟前
4
0
第三方支付-返回与回调注意事项

不管是支付宝,微信,还是其它第三方支付,第四方支付,支付机构服务商只要涉及到钱的交易都要进行如下校验,全部成功了才视为成功订单 1.http请求是否成功 2.校验商户号 3.校验订单号及状态...

Shingfi
20分钟前
3
0
简述Java内存分配和回收策略以及Minor GC 和 Major GC(Full GC)

内存分配: 1. 栈区:栈可分为Java虚拟机和本地方法栈 2. 堆区:堆被所有线程共享,在虚拟机启动时创建,是唯一的目的是存放对象实例,是gc的主要区域。通常可分为两个区块年轻代和年老代。更...

DustinChan
26分钟前
4
0
Excel插入批注:可在批注插入文字、形状、图片

1.批注一直显示:审阅选项卡-------->勾选显示批注选项: 2.插入批注快捷键:Shift+F2 组合键 3.在批注中插入图片:鼠标右键点击批注框的小圆点【重点不可以在批注文本框内点击】----->调出批...

东方墨天
49分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部