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 相关文章推荐
利用js调用后台php进行数据处理原码
Oct 09 PHP
dedecms 制作模板中使用的全局标记图文教程
Mar 11 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
Jul 15 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
Aug 07 PHP
从PHP $_SERVER相关参数判断是否支持Rewrite模块
Sep 26 PHP
php数据库备份还原类分享
Mar 20 PHP
ThinkPHP3.1新特性之字段合法性检测详解
Jun 19 PHP
destoon实现调用自增数字从1开始的方法
Aug 21 PHP
smarty缓存用法分析
Dec 16 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
Jan 17 PHP
php新建文件的方法实例
Sep 26 PHP
PHP 数组操作详解【遍历、指针、函数等】
May 13 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传输数据的代码
2007/11/13 PHP
坏狼的PHP学习教程之第1天
2008/06/15 PHP
php下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
PHP写的资源下载防盗链类分享
2014/05/12 PHP
php中time()与$_SERVER[REQUEST_TIME]用法区别
2014/11/19 PHP
php利用事务处理转账问题
2015/04/22 PHP
php实现的单一入口应用程序实例分析
2015/09/23 PHP
ucenter中词语过滤原理分析
2016/07/13 PHP
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
javascript中直接写php代码的方法
2013/07/31 Javascript
JavaScript截断字符串的方法
2015/07/15 Javascript
require、backbone等重构手机图片查看器
2016/11/17 Javascript
ES6新特性三: Generator(生成器)函数详解
2017/04/21 Javascript
如何理解Vue的作用域插槽的实现原理
2017/08/19 Javascript
vuejs实现递归树型菜单组件
2018/01/13 Javascript
在 webpack 中使用 ECharts的实例详解
2018/02/05 Javascript
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
2020/05/06 Javascript
浅谈javascript如何获取文件后缀名
2020/08/07 Javascript
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
Python中列表元素转为数字的方法分析
2016/06/14 Python
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
PyTorch之图像和Tensor填充的实例
2019/08/18 Python
python可视化实现KNN算法
2019/10/16 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2020/03/17 Python
Keras 实现加载预训练模型并冻结网络的层
2020/06/15 Python
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
个人简历自我评价范文
2014/02/04 职场文书
《金色的脚印》教后反思
2014/04/23 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
自愿离婚协议书2015
2015/01/26 职场文书
《黄山奇石》教学反思
2016/02/18 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书
立秋之描写立秋的作文(五年级)
2019/08/08 职场文书