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 db类库进行数据库操作
Mar 19 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
Nov 02 PHP
php中引用符号(&amp;)的使用详解
Nov 13 PHP
discuz加密解密函数使用方法和中文注释
Jan 21 PHP
PHP之sprintf函数用法详解
Nov 12 PHP
初识laravel5
Mar 02 PHP
Yii安装与使用Excel扩展的方法
Jul 13 PHP
解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory
Feb 25 PHP
PHP实现查询手机归属地的方法详解
Apr 28 PHP
微信封装的调用微信签名包的类库
Jun 08 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
PHP学习记录之常用的魔术常量详解
Dec 12 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 COOKIE设置为浏览器进程
2009/06/21 PHP
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
2010/05/04 PHP
PHP 强制下载文件代码
2010/10/24 PHP
PHP 图片文件上传实现代码
2010/12/29 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
2016/08/12 PHP
php将服务端的文件读出来显示在web页面实例
2016/10/31 PHP
PHP闭包定义与使用简单示例
2018/04/13 PHP
几行代码轻松搞定jquery实现flash8类似的连接效果
2007/05/03 Javascript
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
jQuery 表格工具集
2010/04/25 Javascript
nodejs win7下安装方法
2012/05/24 NodeJs
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
javascript cookie基础应用之记录用户名的方法
2016/09/20 Javascript
微信小程序实现移动端滑动分页效果(ajax)
2017/06/13 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
对angularJs中ng-style动态改变样式的实例讲解
2018/09/30 Javascript
jQuery选择器之层次选择器用法实例分析
2019/02/19 jQuery
Vue中computed、methods与watch的区别总结
2019/04/10 Javascript
jQuery Migrate 插件用法实例详解
2019/05/22 jQuery
基于vue实现微博三方登录流程解析
2020/11/04 Javascript
浅谈Python中的数据类型
2015/05/05 Python
使用python画个小猪佩奇的示例代码
2018/06/06 Python
Python实现端口检测的方法
2018/07/24 Python
python实现简单的文字识别
2018/11/27 Python
Python GUI库PyQt5样式QSS子控件介绍
2020/02/25 Python
如何对python的字典进行排序
2020/06/19 Python
pycharm实现猜数游戏
2020/12/07 Python
CSS去掉A标签(链接)虚线框的方法
2014/04/01 HTML / CSS
Michael Kors美国官网:美式奢侈生活风格的代表
2016/11/25 全球购物
了解AppleTalk协议吗
2014/04/01 面试题
校园之星获奖感言
2014/01/29 职场文书
2014医学院领导干部四风对照检查材料思想汇报
2014/09/16 职场文书
优秀班主任推荐材料
2014/12/17 职场文书
物业公司管理制度
2015/08/05 职场文书
python 经纬度求两点距离、三点面积操作
2021/06/03 Python
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android