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中常用数组处理方法实例分析
Aug 30 PHP
Thinkphp中import的几个用法详细介绍
Jul 02 PHP
php学习笔记之面向对象
Nov 08 PHP
10个简化PHP开发的工具
Dec 25 PHP
php通过前序遍历树实现无需递归的无限极分类
Jul 10 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
Mar 21 PHP
php倒计时出现-0情况的解决方法
Jul 28 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
Mar 14 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
Apr 23 PHP
Laravel配置全局公共函数的方法步骤
May 09 PHP
基于Laravel 5.2 regex验证的正确写法
Sep 29 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 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连接access数据库
2008/03/27 PHP
php中DOMElement操作xml文档实例演示
2013/03/26 PHP
php定义参数数量可变的函数用法实例
2015/03/16 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
php使用curl实现ftp文件下载功能
2017/05/16 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
jquery中实现标签切换效果的代码
2011/03/01 Javascript
js 编程笔记 无名函数
2011/06/28 Javascript
JS操作JSON要领详细总结
2013/08/25 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
javascript将异步校验表单改写为同步表单
2015/01/27 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
详解JavaScript中的表单验证
2015/06/16 Javascript
移动端js触摸事件详解
2016/09/18 Javascript
详解bootstrap用dropdown-menu实现上下文菜单
2017/09/22 Javascript
Nuxt.js踩坑总结分享
2018/01/18 Javascript
VUE 全局变量的几种实现方式
2018/08/22 Javascript
element-ui中按需引入的实现
2019/12/25 Javascript
python 不关闭控制台的实现方法
2011/10/23 Python
分享Python开发中要注意的十个小贴士
2016/08/30 Python
在pandas多重索引multiIndex中选定指定索引的行方法
2018/11/16 Python
使用TensorFlow实现二分类的方法示例
2019/02/05 Python
利用Python实现微信找房机器人实例教程
2019/03/10 Python
Python函数的参数常见分类与用法实例详解
2019/03/30 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
2020/08/31 Python
html5 Canvas画图教程(3)—canvas出现1像素线条模糊不清的原因
2013/01/09 HTML / CSS
您的健身减肥和健康饮食专家:vitafy
2017/06/06 全球购物
总经理驾驶员岗位职责
2013/12/04 职场文书
民政局个人整改措施
2014/09/24 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
2015年技术工作总结范文
2015/04/20 职场文书
张思德观后感
2015/06/09 职场文书
我的中国梦心得体会范文
2016/01/05 职场文书
巾帼建功标兵先进事迹材料
2016/02/29 职场文书
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL