PHP 与 js的通信(via ajax,json)


Posted in Javascript onNovember 16, 2010

JavaScript端:
注意:一定要设置xmlHttp.setRequestHeader,否则传往PHP的参数会变成null(line 38)
亮点在line 31!

<script type="text/javascript"> 
function GetJson() { 
var xmlHttp; 
try { 
// Firefox, Opera 8.0+, Safari 
xmlHttp = new XMLHttpRequest(); 
} 
catch (e) { 
// Internet Explorer 
try { 
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); 
} 
catch (e) { try { 
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
} 
catch (e) { 
alert("您的浏览器不支持AJAX!"); 
return false; 
} 
} 
} 
xmlHttp.onreadystatechange = function() { 
if (xmlHttp.readyState == 4) { 
//alert(xmlHttp.responseText); 
var str = xmlHttp.responseText; 
document.getElementById('show').innerHTML +=str; 
//alert(str); 
var obj = eval('('+ xmlHttp.responseText +')'); 
//var obj = eval(({"id":"123","name":"elar","age":"21"})); 
alert(obj.name); 
} 
} 
var data = "id=123"; 
xmlHttp.open("POST", "testJson.php", true); 
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
xmlHttp.send("id=123"); 
} 
</script> 
<input type="button" onclick="GetJson()" value="按我!"/> 
<hr /> 
<div id="show"></div>

PHP端【testJson.php】:
(注意,php文件要干净,<?php ?>标签的外部不能有其他标签,否则eval函数无法解析)
亮点在line 6
<?php 
$res['id'] = $_POST['id']; 
$res['name'] = "elar"; 
$res['age'] = "21"; 
$response = "hello this is response".$_POST['id']; 
echo json_encode($res); 
?>

总结:
js要往PHP端送数据,用的是xmlHttp.send("id=123");
PHP给js送数据,用的是echo json_encode($res);(要注意变量$res的构造应符合JSON的规范)
js要解析PHP送来的JSON格式的数据,用var obj = eval('('+ xmlHttp.responseText +')');
Javascript 相关文章推荐
tbody元素支持嵌套的注意方法
Mar 24 Javascript
用JavaScript将从数据库中读取出来的日期型格式化为想要的类型。
Aug 15 Javascript
为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
Nov 24 Javascript
jquery封装的对话框简单实现
Jul 21 Javascript
20个实用的JavaScript技巧分享
Nov 28 Javascript
使用jquery操作session方法分享
Jan 22 Javascript
JavaScript判断数组重复内容的两种方法(推荐)
Jun 06 Javascript
Vue.js对象转换实例
Jun 07 Javascript
vue路由拦截及页面跳转的设置方法
May 24 Javascript
用Node提供静态文件服务的方法
Jul 06 Javascript
JS访问对象两种方式区别解析
Aug 29 Javascript
关于vue-cli3打包代码后白屏的解决方案
Sep 02 Javascript
div层的移动及性能优化
Nov 16 #Javascript
自用js开发框架小成 学习js的朋友可以看看
Nov 16 #Javascript
JavaScript.The.Good.Parts阅读笔记(二)作用域&amp;闭包&amp;减缓全局空间污染
Nov 16 #Javascript
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
Nov 16 #Javascript
javascript Array对象基础知识小结
Nov 16 #Javascript
纯js实现背景图片切换效果代码
Nov 14 #Javascript
基于jquery的自定义鼠标提示效果 jquery.toolTip
Nov 14 #Javascript
You might like
PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部
2009/10/22 PHP
ajax+php打造进度条 readyState各状态
2010/03/20 PHP
php中常用字符串处理代码片段整理
2011/11/07 PHP
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
2012/08/08 PHP
浅析PHP中Collection 类的设计
2013/06/21 PHP
php的4种常见运行方式
2015/03/20 PHP
php 生成签名及验证签名详解
2016/10/26 PHP
关于图片验证码设计的思考
2007/01/29 Javascript
javascript一些不错的函数脚本代码
2008/09/10 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
Node.js Sequelize如何实现数据库的读写分离
2016/10/23 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
vue实现axios图片上传功能
2019/08/20 Javascript
JavaScript运动原理基础知识详解
2020/04/02 Javascript
js仿京东放大镜效果
2020/08/09 Javascript
Python创建系统目录的方法
2015/03/11 Python
python3读取MySQL-Front的MYSQL密码
2017/05/03 Python
基于Python的OCR实现示例
2020/04/03 Python
Maisons du Monde德国:法国家具和装饰的市场领导者
2019/07/26 全球购物
广州某公司软件工程师面试题
2014/12/22 面试题
挂职思想汇报
2013/12/31 职场文书
申请任职学生会干部自荐书范文
2014/02/13 职场文书
理工学院学生自我鉴定
2014/02/23 职场文书
2014年创先争优活动总结
2014/05/04 职场文书
2014年检验科工作总结
2014/11/22 职场文书
评先进个人材料
2014/12/29 职场文书
房地产销售主管岗位职责
2015/02/13 职场文书
写给女朋友的检讨书
2015/05/06 职场文书
初中班主任工作总结2015
2015/05/13 职场文书
如何在python中实现ECDSA你知道吗
2021/11/23 Python
Promise静态四兄弟实现示例详解
2022/07/07 Javascript
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技
Nginx文件已经存在全局反向代理问题排查记录
2022/07/15 Servers
python 使用pandas读取csv文件的方法
2022/12/24 Python