学习JSON、ajax中的一些问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/foreverlikui/article/details/78688721

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');

猜你喜欢

转载自blog.csdn.net/foreverlikui/article/details/78688721