json 来实现 php 与 javascript,用 Json 来实现 PHP 与 JavaScript 间数据交换
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
简而论之,不管是xml还是json都是为了方便在客户端与服务器端交互数据的中转站,特别是用于对象型数据,比如最常见的数组。
下面将分别将数组从php传送给javascript,以及将数组从javascript传送给php示例说明,例子比较简单,明白概念即可。不管从php传送给javascript,还是javascript传送给php,json在传送之前都会将对象扁平化即一维化为字符串。
PHP 向 JavaScript 传值
PHP 文件 json.php
$arr = array(
'name' => '希亚',
'nick' => 'Gonn',
'contact' => array(
'email' => 'gonnsai@163.com',
'website' => 'http://www.nowamagic.net',
)
);
$json_string = json_encode($arr);
echo "getProfile($json_string)";
?>
光执行这个文件,其结果如下:
getProfile({"name":"\u5e0c\u4e9a","nick":"Gonn",
"contact":{"email":"gonnsai@163.com","website":"http:\/\/www.nowamagic.net"}})
json.php 是通过 json_encode 函数将数组扁平化,然后发送,相反有个 json_decode 函数。
那么在 JavaScript 如何调用呢?很简单,定义一个变量获取 PHP 传来的 Json,该 Json 具备对象的特性,我们可以用 array.name 这种方式来获取该 Json 的属性。
function getProfile(str) {
var arr = str;
document.getElementById('name').innerHTML = arr.name;
document.getElementById('nick').innerHTML = arr.nick;
document.getElementById('email').innerHTML = arr.contact.email;
document.getElementById('website').innerHTML = arr.contact.website;
}
运行结果如下:
希亚
Gonn
gonnsai@163.com
http://www.nowamagic.net
JavaScript 向 PHP 传值
json_encode.html
json:From javascript To php
function JSON_test(o)
{
var user = {
name:document.getElementById('txt_name').value,
email:document.getElementById('txt_email').value,
password:document.getElementById('txt_password').value
}
var json_string = JSON.stringify(user);
document.getElementById('txt_json').value=json_string;
alert("点击确定后将提交表单");
o.submit();
}
姓名
邮箱
密码
这里javascript扁平化需要一个插件:http://www.json.org/json2.js,通过JSON.stringify(str)将对象扁平化然后传送给php。
var last=obj.toJSONString(); //针对json.js
var last=JSON.stringify(obj); //针对json2.js
json_encode.php
header('Content-Type: text/html; charset=utf-8');
$json_string = $_POST["txt_json"];
//echo $json_string;
if(ini_get("magic_quotes_gpc")=="1")
{
$json_string=stripslashes($json_string);
}
$user = json_decode($json_string);
echo var_dump($user);
echo '
';
echo $user->name.'
';
echo $user->email.'
';
echo $user->password.'
';
?>
这里就需要用到json_decode()这个函数,然后调用其中数据用 $obj->属性即可。
json 来实现 php 与 javascript,用 Json 来实现 PHP 与 JavaScript 间数据交换相关推荐
- .json格式是什么?如何快速打开.json文件?
.json格式是什么? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript语言的一个子集,但是它是独立于编程语言的,可以被多种编程语 ...
- javascript解析json
下载json库 http://www.json.org/json-zh.html自己找javascript的 或者直接去下面的 https://github.com/douglascrockford/ ...
- html5展示json数据库,显示数据在html5从数据库使用javascript和json
我想从MySQL数据库显示在html中的列表.要从MySQL获取数据我使用json和javascript.但它什么也没有显示!显示数据在html5从数据库使用javascript和json 我的HTM ...
- javascript使用Json总结
在JSON中,有两种结构:对象和数组. 1. 一个对象以"{"(左括号)开始,"}"(右括号)结束.每个"名称"后跟一个" ...
- javascript读写json示例
JSON是一种简单的数据格式,比xml更轻巧,在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包,下面有个示例,大家可以参考下 JSON (JavaScript Obj ...
- JavaScript对Json的增删改属性
<script type="text/javascript">var json = {"age":24,"name":" ...
- JavaScript解析Json字符串
JavaScript可以解析服务器接口返回的json字符串(一般用于Ajax),而不需要json的额外支持. 在JavaScript中可以通过eval()方法将一个json字符串解析成一个JavaSc ...
- php用json交换二维数组,PHP和Javascript的JSON交互(处理一个二维数组)
我不得不承认:我是一个彻彻底底的JS白痴.但根据项目需要,不得不使用JSON,不管怎么说,经过一个晚上的学习,已经略有所成,记录下来. PHP的JSON类库我使用的是Services_JSON,没什么 ...
- Javascript 处理 JSON 数据 示例
最近做了一个 MEAN stack 的 app .后台用 NodeJS 从 Jira rest api 获得JSON数据并做处理,然后前端用 AngularJS Ajax call 获得处理后的 JS ...
最新文章
- 数据库管理系统的组成和结构
- js 字符串转成货币格式, js转货币
- 【Groovy】MOP 元对象协议与元编程 ( 使用 Groovy 元编程进行函数拦截 | 重写 MetaClass#invokeMethod 方法拦截 JDK 中已经定义的函数 )
- 你的ABAP程序给佛祖开过光么?来试试Jerry这个小技巧
- 统一建模语言UML轻松入门(3)――静态建模:类和对象
- java调用kettle例子_Kettle API - Java调用示例
- vue子组件触发祖先元素的执行的方法
- 第1章 Ext JS介绍与快速入门[1/4]
- 关于缓存穿透,缓存击穿,缓存雪崩,热点数据失效问题的解决方案
- python美多商城项目百度网盘_美多商城项目(六)
- Pollen 1.5 发布,Web 投票系统
- 如何在 Adobe XD 中创建交互式原型?
- iOS 开发经验 - 转载
- idea git push时 报错 Push rejected: Push to origin/master was rejected
- Zynga公布2019年第三季度财务业绩
- 【HR面试100问】一篇文章根治各种HR面的套路问题,文章给出参考答案~持续更新
- 如何关闭WPS文字的选项卡显示方式?如何实现多窗口显示?
- 关于移动端适配,你必须要知道的
- hyperLynx VX2.5 PCB仿真
- Chromedriver Mirror
热门文章
- 从不同步的代码块中调用了对象同步方法。_Java中Synchronized的用法
- 虚拟dom_虚拟DOM与dom diff
- 地图漫游功能的具体体现_【漫游天下】赣南 | 悠扬风韵之都
- python做系统查人的往来的信息_L01-04:python查询员工信息表练习
- C++项目开发注意事项--持续更新
- Build desktop apps for Windows PCs
- hive同时不包含一些字符串_hive中的字符串提取
- Django:Django简介,MTV,Django常用命令
- 我的世界服务器怎么修改矿物,我的世界怎么设置自定义矿物
- animation 先执行一次 在持续执行_FANUC机器人:先执行指令功能/后执行指令功能介绍与使用方法...