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实现Socket服务器的代码
Apr 03 PHP
php $_SERVER当前完整url的写法
Nov 12 PHP
php读取javascript设置的cookies的代码
Apr 12 PHP
php异步多线程swoole用法实例
Nov 14 PHP
PHP安全上传图片的方法
Mar 21 PHP
基于php实现的验证码小程序
Dec 13 PHP
详谈PHP面向对象中常用的关键字和魔术方法
Feb 04 PHP
如何直接访问php实例对象中的private属性详解
Oct 12 PHP
PHP命令空间namespace及use的用法小结
Nov 27 PHP
thinkPHP5框架分页样式类完整示例
Sep 01 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
Jun 03 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
Mar 23 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关联数组的10个操作技巧
2013/01/21 PHP
php单文件版在线代码编辑器
2015/03/12 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
不使用ajax实现无刷新提交表单
2014/12/21 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
jQuery插件实现无缝滚动特效
2015/11/24 Javascript
Bootstrap企业网站实战项目4
2016/10/14 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
jQuery扇形定时器插件pietimer使用方法详解
2017/07/18 jQuery
jQuery dateRangePicker插件使用方法详解
2017/07/28 jQuery
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
2017/08/18 Javascript
javascript 作用于作用域链的详解
2017/09/27 Javascript
Js通过AES加密后PHP用Openssl解密的方法
2019/07/12 Javascript
Vue-cli 移动端布局和动画使用详解
2020/08/10 Javascript
vue将data恢复到初始状态 &amp;&amp; 重新渲染组件实例
2020/09/04 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
原生js实现放大镜组件
2021/01/22 Javascript
简单介绍Python中的filter和lambda函数的使用
2015/04/07 Python
详解Python中表达式i += x与i = i + x是否等价
2017/02/08 Python
解决pycharm运行时interpreter为空的问题
2018/10/29 Python
python执行精确的小数计算方法
2019/01/21 Python
Python 判断图像是否读取成功的方法
2019/01/26 Python
Python实现的爬取百度文库功能示例
2019/02/16 Python
Python编程实现tail-n查看日志文件的方法
2019/07/08 Python
pytorch之添加BN的实现
2020/01/06 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
Python3.9又更新了:dict内置新功能
2020/02/28 Python
基于pytorch中的Sequential用法说明
2020/06/24 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
教师业务培训方案
2014/05/01 职场文书
阅兵口号
2014/06/19 职场文书
少先队辅导员事迹材料
2014/12/24 职场文书
MySQL 全文索引使用指南
2021/05/25 MySQL
关于python pygame游戏进行声音添加的技巧
2021/10/24 Python