PHP与javascript的两种交互方式


Posted in PHP onOctober 09, 2006

    在网页制作过程中怎样在不刷新页面的情况下使前台页面和
后台CGI页面保持交互一直是个问题。这里介绍两个我在实践中使
用的方法。

    方法一:通过Cookie交互。一共是三个文件,分别为:
index.htm,action.php,main.htm
      原理为前台页面main.htm和后台action.php通过页面框架
index.htm组织起来,将action.php的页面宽度设为0,这样并不
影响显示。action.php将信息放入cookie中,main.htm通过读取
cookie来实现交互。在main.htm中也可以通过重新读取action.php
来实现控制后台CGI程序。

index.htm
---------------------------------------------------------------
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<frameset framespacing="0" border="false" frameborder="0" cols="0,*">
  <frame name="leftFrame" scrolling="no" noresize src="action.php">
  <frame name="rightFrame" scrolling="auto" src="main.htm">
</frameset><noframes>
  <body bgcolor="#FFFFFF">
  <p>本页使用页面框架,但是您的浏览器不支持。</p>
  </body>
</noframes>
</html>
---------------------------------------------------------------

action.php
---------------------------------------------------------------
<?
srand((double)microtime()*1000000);
$result=rand(0,100);
setcookie("action",$result,time()+900,"/");
?>
---------------------------------------------------------------

main.htm
---------------------------------------------------------------
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="javascript">
function get_cookie()
{
  document.test.current_cookie.value=document.cookie;
}
</script>
</head>
<body bgcolor="#FFFFFF">
<form name="test" >
当前参数为<input type="text" name="current_cookie" size="80" maxlength="1000">
</form>
<script language="javascript">
  setInterval("get_cookie()",200);
</script>
<br>
<a href="action.php" target="leftFrame">重新读取Cookie</a>
</body>
</html>
---------------------------------------------------------------

    方法二:直接通过parent.*.*来实现交互。一共是三个文件,分别为:
index.htm,action.php,main.htm,其中index.htm和前面的一样。
    原理为通过parent.rightFrame.test.current_cookie.value直接传递
信息。

action.php
---------------------------------------------------------------
<?
srand((double)microtime()*1000000);
$result=rand(0,100);
?>
<script language="javascript">
  parent.rightFrame.test.current_cookie.value="<? echo $result?>";
</script>
---------------------------------------------------------------

main.htm
---------------------------------------------------------------
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">
<form name="test" >
当前参数为<input type="text" name="current_cookie" size="80" maxlength="1000">
</form>
<br>
<a href="action.php" target="leftFrame">重新读取Cookie</a>
</body>
</html>
---------------------------------------------------------------  

PHP 相关文章推荐
十天学会php(1)
Oct 09 PHP
php查看session内容的函数
Aug 27 PHP
简单的移动设备检测PHP脚本代码
Feb 19 PHP
php smarty 二级分类代码和模版循环例子
Jun 16 PHP
php连接mssql的一些相关经验及注意事项
Feb 05 PHP
深入php list()函数的详解
Jun 05 PHP
163的邮件用phpmailer发送(实例详解)
Jun 24 PHP
PHP-Fcgi下PHP的执行时间设置方法
Aug 02 PHP
php函数指定默认值方法的小例子
Dec 04 PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
Mar 25 PHP
thinkPHP中create方法与令牌验证实例浅析
Dec 08 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 17 PHP
用PHP和ACCESS写聊天室(六)
Oct 09 #PHP
PHP+javascript模拟Matrix画面
Oct 09 #PHP
用PHP和ACCESS写聊天室(五)
Oct 09 #PHP
用PHP和ACCESS写聊天室(四)
Oct 09 #PHP
用php和MySql来与ODBC数据连接
Oct 09 #PHP
WHOIS类的修改版
Oct 09 #PHP
很实用的一个完整email发送程序
Oct 09 #PHP
You might like
php下连接ftp实现文件的上传、下载、删除文件实例代码
2010/06/03 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
在线编辑器中换行与内容自动提取
2009/04/24 Javascript
innerText和textContent对比及使用介绍
2013/02/27 Javascript
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
2013/04/08 Javascript
批量实现面向对象的实例代码
2013/07/01 Javascript
javascript禁制后退键(Backspace)实例代码
2013/11/15 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
JS实现的表格行鼠标点击高亮效果代码
2015/11/27 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
2016/09/23 Javascript
详解axios在node.js中的post使用
2017/04/27 Javascript
JavaScript判断浏览器和hack滚动条的写法
2017/07/23 Javascript
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
小程序input数据双向绑定实现方法
2019/10/17 Javascript
js实现录音上传功能
2019/11/22 Javascript
详解vue3.0 的 Composition API 的一种使用方法
2020/10/26 Javascript
使用python Fabric动态修改远程机器hosts的方法
2018/10/26 Python
10分钟用python搭建一个超好用的CMDB系统
2019/07/17 Python
浅谈Python的方法解析顺序(MRO)
2020/03/05 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2020/06/01 Python
美国珠宝网上商店:Jeulia
2016/09/01 全球购物
全球立体声:World Wide Stereo
2018/09/29 全球购物
有趣的流行文化T恤、马克杯、手机壳和更多:Look Human
2019/01/07 全球购物
如何在Shell脚本中使用函数
2015/09/06 面试题
教师自我鉴定范文
2013/11/10 职场文书
会计学毕业生求职信
2014/06/25 职场文书
合伙开公司协议书范本
2014/10/28 职场文书
2014年宣传部工作总结
2014/11/12 职场文书
感谢信怎么写
2015/01/21 职场文书
幼儿园欢迎词范文
2015/01/26 职场文书
如何书写读后感?(附范文)
2019/07/26 职场文书
MySQL update set 和 and的区别
2021/05/08 MySQL
分布式架构Redis中有哪些数据结构及底层实现原理
2022/03/13 Redis
解决vue中provide inject的响应式监听
2022/04/19 Vue.js