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 相关文章推荐
使用JQUERY Tabs插件宿主IFRAMES
Jan 01 Javascript
将查询条件的input、select清空
Jan 14 Javascript
删除Javascript Object中间的key
Nov 18 Javascript
如何改进javascript代码的性能
Apr 02 Javascript
JavaScript实现鼠标滑过处生成气泡的方法
May 16 Javascript
jQuery插件实现静态HTML验证码校验
Nov 06 Javascript
AngularJS 路由和模板实例及路由地址简化方法(必看)
Jun 24 Javascript
使用开源工具制作网页验证码的方法
Oct 17 Javascript
React Native之prop-types进行属性确认详解
Dec 19 Javascript
js实现GIF图片的分解和合成
Oct 24 Javascript
vue项目中监听手机物理返回键的实现
Jan 18 Javascript
深入理解 ES6中的 Reflect用法
Jul 18 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 curl 上传文件代码实例
2015/04/27 PHP
php如何连接sql server
2015/10/16 PHP
Flash对联广告的关闭按钮讨论
2007/01/30 Javascript
封装的原生javascript弹出层代码
2010/09/24 Javascript
js报错 Object doesn't support this property or method的原因分析
2011/03/31 Javascript
js 文本滚动效果的实例代码
2013/08/17 Javascript
javaScript如何生成xmlhttp
2013/12/16 Javascript
详解JavaScript正则表达式中的global属性的使用
2015/06/16 Javascript
javascript跨域总结之window.name实现的跨域数据传输
2015/11/01 Javascript
Bootstrap插件全集
2016/07/18 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
vue脚手架及vue-router基本使用
2018/04/09 Javascript
在vue-cli搭建的项目中增加后台mock接口的方法
2018/04/26 Javascript
Puppeteer环境搭建的详细步骤
2018/09/21 Javascript
详解如何在Javascript中使用Object.freeze()
2020/10/18 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
Python 遍历列表里面序号和值的方法(三种)
2017/02/17 Python
python实现报表自动化详解
2017/11/16 Python
基于Python实现的ID3决策树功能示例
2018/01/02 Python
Python实现简单文本字符串处理的方法
2018/01/22 Python
Python中函数的基本定义与调用及内置函数详解
2019/05/13 Python
python celery分布式任务队列的使用详解
2019/07/08 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
python 爬取马蜂窝景点翻页文字评论的实现
2020/01/20 Python
基于Python数据结构之递归与回溯搜索
2020/02/26 Python
Python Flask异步发送邮件实现方法解析
2020/08/01 Python
分别介绍一下Session Bean和Entity Bean
2015/03/13 面试题
总经理助理岗位职责
2013/11/08 职场文书
教师一岗双责责任书
2014/04/16 职场文书
地理信息科学专业推荐信
2014/09/08 职场文书
先进集体事迹材料范文
2014/12/25 职场文书
民间借贷纠纷案件代理词
2015/05/26 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
党员电教片《信仰》心得体会
2016/01/15 职场文书
预备党员的思想汇报,你真的会写吗?
2019/06/28 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书