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 缓冲的免费实现方法
Oct 09 PHP
PHP+AJAX实现无刷新注册(带用户名实时检测)
Dec 02 PHP
抓取并下载CSS中所有图片文件的php代码
Sep 26 PHP
微信公众平台消息接口校验与消息接口响应实例
Dec 23 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
Jul 04 PHP
WordPress中登陆后关闭登陆页面及设置用户不可见栏目
Dec 31 PHP
一波PHP中cURL库的常见用法代码示例
May 06 PHP
PHP实现可精确验证身份证号码的工具类示例
May 31 PHP
ThinkPHP5+Layui实现图片上传加预览功能
Aug 17 PHP
php基于 swoole 实现的异步处理任务功能示例
Aug 13 PHP
Laravel关系模型指定条件查询方法
Oct 10 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 26 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
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
PHP JSON格式的中文显示问题解决方法
2015/04/09 PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
2016/11/12 PHP
php使用Jpgraph创建3D饼形图效果示例
2017/02/15 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
cnblogs csdn 代码运行框实现代码
2009/11/02 Javascript
js png图片(有含有透明)在IE6中为什么不透明了
2010/02/07 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
2011/12/08 Javascript
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
jquery $.each 和for怎么跳出循环终止本次循环
2013/09/27 Javascript
JS+CSS实现可拖动的弹出提示框
2015/02/16 Javascript
jQuery在ul中显示某个li索引号的方法
2015/03/17 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
JavaScript与Java正则表达式写法的区别介绍
2017/08/15 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
vue2.0 子组件改变props值,并向父组件传值的方法
2018/03/01 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
2019/12/21 Javascript
关于uniApp editor微信滑动问题
2021/01/15 Javascript
[39:11]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第二局
2016/02/28 DOTA
python操作mysql数据库
2017/03/05 Python
pyhton列表转换为数组的实例
2018/04/04 Python
python引用(import)某个模块提示没找到对应模块的解决方法
2019/01/19 Python
Python实现对特定列表进行从小到大排序操作示例
2019/02/11 Python
Python 类属性与实例属性,类对象与实例对象用法分析
2019/09/20 Python
python读取ini配置的类封装代码实例
2020/01/08 Python
python将图片转base64,实现前端显示
2020/01/09 Python
详解HTML5中的元素与元素
2015/08/17 HTML / CSS
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
TUMI香港官网:国际领先的行李箱、背囊品牌
2021/03/01 全球购物
设计毕业生简历中的自我评价
2013/10/01 职场文书
工作违纪检讨书
2014/02/17 职场文书
品质标语大全
2014/06/21 职场文书
个人借条范本
2015/05/25 职场文书
2019新员工试用期转正工作总结范文
2019/08/21 职场文书