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 开发环境配置(Zend Server安装)
Apr 28 PHP
强烈声明: 不要使用(include/require)_once
Jun 06 PHP
php include和require的区别深入解析
Jun 17 PHP
解析php中curl_multi的应用
Jul 17 PHP
php自定义的格式化时间示例代码
Dec 05 PHP
php多文件上传实现代码
Feb 20 PHP
PHP中strtr字符串替换用法详解
Nov 26 PHP
mysql查找删除重复数据并只保留一条实例详解
Sep 24 PHP
php版交通银行网银支付接口开发入门教程
Sep 26 PHP
解析PHP之提取多维数组指定列的方法
Jan 03 PHP
php+Ajax处理xml与json格式数据的方法示例
Mar 04 PHP
PHP工厂模式的日常使用
Mar 20 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做的端口嗅探器--可以指定网站和端口
2006/10/09 PHP
PHP面向对象之后期静态绑定功能介绍
2015/05/18 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
2016/03/01 PHP
Zend Framework教程之模型Model基本规则和使用方法
2016/03/04 PHP
javascript 文档的编码问题解决
2009/03/01 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
JavaScript判断变量是否为空的自定义函数分享
2015/01/31 Javascript
基于OL2实现百度地图ABCD marker的效果
2015/10/01 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
js实现简单的计算器功能
2017/01/16 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
Bootstrap-table自定义可编辑每页显示记录数
2018/09/07 Javascript
基于Vue 服务端Cookies删除的问题
2018/09/21 Javascript
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
2019/04/28 Javascript
vue 搭建后台系统模块化开发详解
2019/05/01 Javascript
javascript canvas时钟模拟器
2020/07/13 Javascript
[37:47]IG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python发送邮件接收邮件示例分享
2014/01/21 Python
python fabric使用笔记
2015/05/09 Python
Python selenium 三种等待方式解读
2016/09/15 Python
python爬虫框架talonspider简单介绍
2017/06/09 Python
浅谈Python peewee 使用经验
2017/10/20 Python
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
详解PyQt5信号与槽的几种高级玩法
2020/03/24 Python
Python中实现输入一个整数的案例
2020/05/03 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
生物有机护肤品:Aurelia Probiotic Skincare
2018/01/31 全球购物
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
2014/07/17 面试题
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
华三通信H3C面试题
2015/05/15 面试题
护理职业生涯规划书
2014/01/24 职场文书
护士求职信范文
2014/05/24 职场文书
学校感恩节活动策划方案
2014/10/06 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
成人成长感言如何写?
2019/08/16 职场文书