ajax ajax获取数据的处理和实例

本文详细介绍了如何使用PHP生成JSON数据,并通过AJAX进行数据的获取与解析。展示了从数组转换为JSON字符串,再到客户端解析JSON数据的全过程,包括错误处理与数据展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php
 header('content-type:text/html;charset="utf-8"');
 error_reporting(0);
 $arr1 = array('bai','qi','liuliu');
 echo json_encode($arr1);
?>

<?php
 header('content-type:text/html;charset="utf-8"');
 error_reporting(0);

$arr2 = array('username' =>'haha' , 'age'=>12);
 echo json_encode($arr2);

 ?>

 

//stringify 可以把一个对象转成对应字符串
        var arr = [1,2,3];
        alert(JSON.stringify(arr));
        </script>

var aa = {age:100};
        alert(JSON.stringify(aa));

//parse:可以把字符串转成对应对象
        var b = '[1,2,3]';
        alert(JSON.parse(b));

var c = '{"age":100}';        //必须带双引号
        alert(JSON.parse(c).age);

 

数据获取实例:

ajax5.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script>
        window.onload = function(){
            var oBtn = document.getElementById("btn");
            oBtn.onclick = function(){
                var xhr = null;
                try{
                    xhr = new XMLHttpRequest();
                }catch(e){
                    xhr = new ActiveXObject('Microsoft.XMLHTTP');
                }
                xhr.open('GET','2.php',true);
                xhr.send();
                xhr.onreadystatechange = function(){
                    if(xhr.readyState == 4){
                        if(xhr.status == 200){
                            var data = JSON.parse(xhr.responseText);
                            var oUl = document.getElementById('aul');
                            var html = '';
                            for(var i = 0;i<data.length;i++){
                                html +='<li><a href="">'+data[i].title+'</a>[<span>'+data[i].date+'</span>]</li>';
                            }
                        oUl.innerHTML = html;

                        }else{
                            alert('出错了' + xhr.status);
                        } 
                    }
                }
            }
        }
        </script>
    </head>
    <body>
        <input id="btn" type="button" value="按钮">
        <ul id="aul"></ul>
    </body>
</html>

2.php

<?php
 header('content-type:text/html;charset="utf-8"');
 error_reporting(0);

$news = array(
array('title' =>'那么就要考虑下JDK的版本了具体对应的A' , 'date'=>'2019-1-2'),
array('title' =>'那么就要考虑下JDK的版本了具体对应的b' , 'date'=>'2019-1-3'),
array('title' =>'那么就要考虑下JDK的版本了具体对应的c' , 'date'=>'2019-1-4'),
array('title' =>'那么就要考虑下JDK的版本了具体对应的d' , 'date'=>'2019-1-5'),
array('title' =>'那么就要考虑下JDK的版本了具体对应的e' , 'date'=>'2019-1-6'),
);
 ?>

 

ajax获取数据封装

ajax5.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script src="ajax.js"></script>
        <script>
        window.onload = function(){
            var oBtn = document.getElementById("btn");
            oBtn.onclick = function(){
                
                ajax('get','2.php','',function(data){
                            var data = JSON.parse(data);
                            alert(data);
                            
                            var oUl = document.getElementById('aul');
                            var html = '';
                        
                            for(var i = 0;i<data.length;i++){
                                html +='<li><a href="">'+data[i].title+'</a>[<span>'+data[i].date+'</span>]</li>';
                            }
                        oUl.innerHTML = html;
                });
//                setInterval(function(){
//                    ajax();
//                },1000)
            }
        }
        </script>
    </head>
    <body>
        <input id="btn" type="button" value="按钮">
        <ul id="aul"></ul>
    </body>
</html>

2.php

<?php
 header('content-type:text/html;charset="utf-8"');
 error_reporting(0);

$news = array(
array('title' =>'那么就要考虑下JDK的版本了具体对应的A' , 'date'=>'2019-1-2'),
array('title' =>'那么就要考虑下JDK的版本了具体对应的b' , 'date'=>'2019-1-3'),
array('title' =>'那么就要考虑下JDK的版本了具体对应的c' , 'date'=>'2019-1-4'),
array('title' =>'那么就要考虑下JDK的版本了具体对应的d' , 'date'=>'2019-1-5'),
array('title' =>'那么就要考虑下JDK的版本了具体对应的e' , 'date'=>'2019-1-6'),
);
echo json_encode($news);
 ?>
ajax.js

function ajax(method,url,data,success){
                var xhr = null;
                try{
                    xhr = new XMLHttpRequest();
                }catch(e){
                    xhr = new ActiveXObject('Microsoft.XMLHTTP');
                }
                if(method == 'get' && data){
                    url += '?'+data;
                }

                xhr.open(method,url,true);
                if(method == 'get'){
                    xhr.send();
                    alert( xhr.responseText);
                }else{
                    xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
                    xhr.send(data);
                }
                
                
                xhr.onreadystatechange = function(){
                    if(xhr.readyState == 4){
                        if(xhr.status == 200){
                            alert( xhr.responseText);
                            success && success(xhr.responseText);
                            
                        }else{
                            alert('出错了' + xhr.status);
                        } 
                    }
                }
}

 

注:http://json.org/ json官网

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值