Ajax简单案例——图书查询系统

  • 先将ajax进行初步封装:
    js代码如下:ajax.js
function ajax(url,type,param,dataType,callback){
    var xhr = null;
    if(window.XMLHttpRequest){
        xhr = new XMLHttpRequest();//标准浏览器
    }else{
        xhr = new ActiveXObject('Microsoft.XMLHTTP');
    }
    if(type == 'get'){
        url += "?" + param;
    }
    xhr.open(type,url,true);

    var data = null;
    if(type == 'post'){
        data = param;
        xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    }
    xhr.send(data);
    xhr.onreadystatechange = function(){
        if(xhr.readyState == 4){
            if(xhr.status == 200){
                var data = xhr.responseText;
                if(dataType == 'json'){
                    data = JSON.parse(data);
                }
                callback(data);
            }
        }
    }
}
  • html部分代码如下:11.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    #container{
        width: 360px;
        min-height: 100px;
        background-color: lightgreen;
        position: absolute;
        left: 50%;
        top: 10px;
        margin-left: -180px;
    }
    </style>
    <script type="text/javascript" src="./ajax.js"></script>
    <script type="text/javascript">
    /*
    功能需求:页面输入图书编号,查询服务器端的图书信息并且解析渲染
    */
    window.onload = function(){
        var btn = document.getElementById('btn');
        btn.onclick = function(){
            var code = document.getElementById('code').value;
            ajax('./11.php','get','code='+code,'json',function(data){
                // 解析数据并渲染页面
                var info = document.getElementById('info');
                if(data.flag == 0){//没有查询到数据
                    info.innerHTML = '没有这本书';
                }else{
                    var tag = '<ul><li>书名:'+data.bookname+'</li><li>作者:'+data.author+'</li><li>描述:'+data.desc+'</li></ul>';
                    info.innerHTML = tag;
                }

            });
        }
    }
    </script>
</head>
<body>
    <div id="container">
        <div>
            图书编码:<input type="text" name="code" id="code">
            <input type="button" value="查询" id="btn">
        </div>
        <div id="info"></div>
    </div>
</body>
</html>
  • php代码如下:(数据是自己在后台添加的)11.php
<?php 
    // $code = $_GET['code'];
    $code = $_POST['code'];

    $books = array();
    $books['sgyy'] = array('bookname'=>'三国演义','author'=>'罗贯中','desc'=>'一个杀伐纷争的年代'); 
    $books['shz'] = array('bookname'=>'水浒传','author'=>'施耐庵','desc'=>'108条好汉的故事'); 
    $books['xyj'] = array('bookname'=>'西游记','author'=>'吴承恩','desc'=>'佛教与道教的斗争'); 
    $books['hlm'] = array('bookname'=>'红楼梦','author'=>'曹雪芹','desc'=>'一个封建王朝的缩影'); 
    // 这里的array_key_exists用来判断数组中没有对应键
    if(array_key_exists($code,$books) == 1){//判断code数组中是否有book这个值
        $book = $books[$code];//这里根据参数获取一本书的信息
        echo json_encode($book);
    }else{
        echo '{"flag":0}';//没有查询到内容 若是0没有查询到数据
    }

    // echo $qq;
 ?>   

  • 效果如图所示
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值