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 相关文章推荐
COM in PHP (winows only)
Oct 09 PHP
php 高性能书写
Dec 11 PHP
PHP运行时强制显示出错信息的代码
Apr 20 PHP
fleaphp常用方法分页之Pager使用方法
Apr 23 PHP
『PHP』PHP截断函数mb_substr()使用介绍
Apr 22 PHP
php fsockopen伪造post与get方法的详解
Jun 14 PHP
php模拟用户自动在qq空间发表文章的方法
Jan 07 PHP
PHP 魔术变量和魔术函数详解
Feb 25 PHP
PHP中的类型提示(type hinting)功能介绍
Jul 01 PHP
php版微信公众平台实现预约提交后发送email的方法
Sep 26 PHP
php多文件打包下载的实例代码
Jul 12 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
Sep 22 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
ajax php 实现写入数据库
2009/09/02 PHP
PHP循环函数使用介绍之PHP基础入门教程
2013/09/21 PHP
PHP文件缓存smarty模板应用实例分析
2016/02/26 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
javascript concat数组累加 示例
2009/09/03 Javascript
支持ie与FireFox的剪切板操作代码
2009/09/28 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
2013/03/05 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
用于deeplink的js方法(判断手机是否安装app)
2014/04/02 Javascript
Javascript连接Access数据库完整实例
2015/08/03 Javascript
Jquery 全选反选实例代码
2015/11/19 Javascript
js实现对table的增加行和删除行的操作方法
2016/10/13 Javascript
JS正则表达式完美实现身份证校验功能
2017/10/18 Javascript
使用Node搭建reactSSR服务端渲染架构
2018/08/30 Javascript
vue-cli的build的文件夹下没有dev-server.js文件配置mock数据的方法
2019/04/17 Javascript
vue+elementUI实现表单和图片上传及验证功能示例
2019/05/14 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
2020/04/22 Javascript
原生js实现照片墙效果
2020/10/13 Javascript
Python编程实现从字典中提取子集的方法分析
2018/02/09 Python
在django中自定义字段Field详解
2019/12/03 Python
Python smtp邮件发送模块用法教程
2020/06/15 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
2020/08/07 Python
Python爬取数据并实现可视化代码解析
2020/08/12 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
2020/10/04 Python
python爬虫线程池案例详解(梨视频短视频爬取)
2021/02/20 Python
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
法国体育用品商店:GO Sport
2019/10/23 全球购物
电气工程及其自动化自我评价四篇
2013/09/24 职场文书
党校培训思想汇报
2013/12/30 职场文书
2014年电工工作总结
2014/11/20 职场文书
消防安全培训工作总结
2015/10/23 职场文书
数据库的高级查询六:表连接查询:外连接(左外连接,右外连接,UNION关键字,连接中ON与WHERE的不同)
2021/04/05 MySQL
mysql优化
2021/04/06 MySQL
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript
关于使用Redisson订阅数问题
2022/01/18 Redis
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android