1.普通数组转换为JSON数组格式
例如:
普通数组为:$arr = array('name' => 'likui' , 'age' => 30);
转换为JSON格式数组使用: $json = json_encode($arr);
输出:{"name":"likui","age":30};
php 5.4.0之前,json_encode() 是不支持 中文编码的 5.4.0之后,json_encode()新增了 JSON_UNESCAPED_UNICODE 选项,支持了中文,
例如:$arr = array('name' => '张三' , 'age' => 30);
$json = json_encode($arr,JSON_UNESCAPED_UNICODE),输出获得汉字的编码,而不直接是汉字。为了方便记忆,此选项可以简写为256
2.在数据库中存储的时候,JSON格式的数组,可以直接写入到数据库,到时拿出来的时候进行转换就可以正常使用。
例如:数据库中又一条记录存储为{"name":"likui","age":30};
当我们拿出来需要转换成数据并且使用的时候,就需要使用到json_decode()
具体使用如下:$jsonStr = {"name":"likui","age":30};
$arr = json_decode($jsonStr,true);
其中,为true时,返回array格式。
false时,返回对象格式:object(stdClass)#16 (2) { ["name"]=> string(8) "the name" ["age"]=> int(30) };
3.ajax方法提交表单
$.ajax({name:value, name:value, ... })
该参数规定了ajax请求的一个或多个名称/值对。
当我们平时提交表单数据的时候,可以直接使用post和get类型。
例如:jq.post和jq.get
4.在我们使用ajax提交,并且返回json数据,判断表单是否提交成功。
在我们使用的thinkphp框架中,$this->success()会自动判断我们是否使用ajax进行提交,success中参数有:信息、跳转地址、是否是ajax。例如$this->success('成功',U('index'),true)。当为true时,返回ajax信息,交由前台判断处理,信息如下:
{"info":"\u6210\u529f","status":1,"url":""}
当为false时,status为0
前台通过ajax的回调,获得status参数,可以联合layui来返回给用户成功或错误信息。
jq.post('{:U("jinji")}',id,function (json) {
layer.close(loadIndex);
if (json.status == 1) {
layer.msg(json.info, {icon: 1, time: 1000}, function () {
location.reload();//do something
});
} else {
layer.msg(json.info, {icon: 2, anim: 6, time: 1000});
}
console.log('提交成功');
},'json');