json与ajax

JSON已经成为最流行的数据交换(前后台交换)格式之一,各大网站的API都支持它。

php操作JSON有两个函数分别是

json_encode 对变量进行 json的编码 只能接受UTF-8的编码数据

json_decode json的解码

<?php
$arr = array('a''b','c');
$json = json_encode($arr);
//生成json字符串
echo $json;

输出的是一个["a","b","c"]

<?php
$arr = array('1001'=>'aa','1002'=>'b','1003'=>'c');
$json = json_encode($arr);
//生成json字符串
echo $json;

输出的为{"1001":"a","1002":"b","1003":"c"}

<?php
$arr = array('1001'=>'张三','1002'=>'b','1003'=>'c');
$json = json_encode($arr);
//生成json字符串
echo $json;

对于中文就会输出一个编码

如果输出中文

<?php
$arr = array('1001'=>array('name'=>'张三'),'1002'=>'b','1003'=>'c');
$json = json_encode($arr,JSON_UNESCAPED_UNICODE);
//生成json字符串
echo $json;

json数据格式

-对象表示为键值对

-数据由逗号分隔

-花括号保存对象

-方括号保存数组

 

 

接下来说一下AJAX

AJAX= 异步JAVAScript和XML

常用的操作有

$.get  $.post $.ajax

这三个都是Jquery里面的AJAX,如果我们用JS原生态的AJAX写起来是非常麻烦的

我们不建议使用原生态的AJAX 

ajax是前台的技术并不是php的技术  属于前端的技术

GET() POST()方法

get 从指定的资源请求数据

 

 

post 向制定的资源提交要处理的数据

get基本上用于从服务器获得(取回)数据 可能会返回一些缓存的数据

引入一个HTML文件 必须有bootstrap

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script type="text/javascript" src="./bootstrap-3.3.7-dist/js/jquery-3.3.1.min.js"></script>
    <title>Document</title>
</head>
<body>
    <input type="text" id="txt">
    <button type="button" id="btn">执行</button>

     <script type="text/javascript">
     $(function (){
         $('#btn').click(function () {
             $.get(demo.php,function (data) {
                 $('#txt').val(data);
             })
         })
     })
     </script>
</body>
</html>

 在demo.php文件中

<?php

$str ="张三";
echo $str;

输出一个结果

<?php
$arr = array('1001'=>array('name'=>'张三'),'1002'=>'b','1003'=>'c');
$json = json_encode($arr,JSON_UNESCAPED_UNICODE);
//生成json字符串
// echo $json;
// $str = "张三";
echo $json;

这是demo.php

在默认的情况下,获取的话得到的是一个整个的json字符串

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script type="text/javascript" src="./bootstrap-3.3.7-dist/js/jquery-3.3.1.min.js"></script>
    <title>Document</title>
</head>
<body>
    <input type="text" id="txt">
    <button type="button" id="btn">执行</button>

     <script type="text/javascript">
     $(function (){
         $('#btn').click(function () {
             $.get(demo.php,function (data) {
                 var obj = JSON.parse(data)  //json=>js对象
                 $('#txt').val(obj.sex);
             })
         })
     })
     </script>
</body>
</html>

这是前台如何处理json 与js对象

用post

demo.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script type="text/javascript" src="./bootstrap-3.3.7-dist/js/jquery-3.3.1.min.js"></script>
    <title>Document</title>
</head>
<body>
    
    学号:<input type="text" id="no">
    <button type="button" id="btn">查询</button>

     <script type="text/javascript">
     $(function (){
         $('#btn').click(function () {
             var no = $('#no').val();

             $.post(demo.php,{no:no},function (data) {
                //  var obj = JSON.parse(data)  //json=>js对象
                //  $('#txt').val(obj.sex);
                console.log(data);
             })
         })
     })
     </script>
</body>
</html>

demo.php

<?php
// $arr = array('1001'=>array('name'=>'张三'),'1002'=>'b','1003'=>'c');
// $json = json_encode($arr,JSON_UNESCAPED_UNICODE);
// //生成json字符串
// // echo $json;
// // $str = "张三";
// echo $json;

$no = $_POST['no'];
echo $no;

连接数据库

<?php
// $arr = array('1001'=>array('name'=>'张三'),'1002'=>'b','1003'=>'c');
// $json = json_encode($arr,JSON_UNESCAPED_UNICODE);
// //生成json字符串
// // echo $json;
// // $str = "张三";
// echo $json;

$no = $_POST['no'];

$conn = @new mysqli('localhost','root','','myschool');
if ($conn->connect_error) {
    die('连接数据库失败');
}
$conn -> set_charset('utf8');
$user = $_GET['user'];
$no = htmlspecialchars(addslashes($no));

$sql = "select * from student1 where no='$no'";
$ret = $conn->query($sql);
$row = $ret -> fetch_assoc();
$conn ->close();

if($row){
    echo json_encode(array('errcode'=>0,'data'=>$row));

}else{
    echo json_encode(array('errcode'=>1,'msg'=>'查无此人'));
}

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script type="text/javascript" src="./bootstrap-3.3.7-dist/js/jquery-3.3.1.min.js"></script>
    <title>Document</title>
</head>
<body>
    
    学号:<input type="text" id="no">
    <button type="button" id="btn">查询</button>

     <script type="text/javascript">
     $(function (){
         $('#btn').click(function () {
             var no = $('#no').val();

             $.post(demo.php,{no:no},function (data) {
                 var obj = JSON.parse(data)  //json=>js对象
                //  $('#txt').val(obj.sex);
                // console.log(data);
                if(obj.errcode==0){
                    var student = obj.data;
                    alert('找到了,'+student.name)
                }else{
                    alert(obj.msg);
                }
             })
         })
     })
     </script>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值