ajax和jquery

ajax的定义:

AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。
AJAX = 异步 JavaScriptXML标准通用标记语言的子集)。
AJAX 是一种用于创建快速动态网页的技术。
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。
ajax的优势:可以跨平台,可以实现无刷新技术。
 
jquery的定义:
jquery就是用javascript更加方便的查询和控制页面控件。
jquery优点:减少了代码量
 
下面我们来看一个简单的例子
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script src="js/jquery-1.7.2.js"></script>
</head>
<script type="text/javascript">
    $(function(){
        //按钮单击时执行
        $("#testAjax").click(function(){
              $.ajax({url:"index.jsp",
                    success:function(data){
                        //alert(data);
                        $("#myDiv").html(data);
                    }      
              } );
         });
    });
</script>    
</head>
    <body>
        <div id="myDiv"><h2>通过 AJAX 改变文本</h2></div>
        <button id="testAjax" type="button">Ajax改变内容</button>
    </body>
</html>

我的那个url地址是另一个jsp页面,代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script src="js/jquery-1.7.2.js"></script>
<script src="js/jquery-ui-1.8.20.custom.min.js"></script>
<link href="css/ui-lightness/jquery-ui-1.8.20.custom.css" rel="stylesheet"/>
</head>
<style>
    tr,td{
        border:1px solid;
        padding:10px;
        text-align:center;
    }
    #firstTable th{
        border:1px solid;
        width:200px;
    }
    #firstTable{
        position: relative;
    }
    #tableTwo{
        display:none;
        position: absolute;
        left:500px;
        top:100px;
        background:white;
    }
    #div{
        background-color:#E8E1CF;
        width:100%;
        height:100%;
        opacity: 0.6;
        position: fixed;
        display:none;
    }
</style>
<%
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        String date=sdf.format(new Date());
        session.setAttribute("date", date);
%>
<body>
    <div id="div"></div>
    <div>
        <h3 style="text-align:center">借书卡管理系统</h3>
        <div><a href="#" style="margin-left:600px" id="add">新增借书卡</a>
            <a href="#" style="margin-left:50px" id="del">删除借书卡</a>
            <a href="#" style="margin-left:50px" id="update">修改借书卡</a>
            <input placeholder="请根据姓名或者卡号进行查询" size="30px" name="midSelect"/><button id="midSelect">模糊查询</button></div>
        <table id="firstTable">
            
        </table>
    </div>
    <form action="" method="post" name="addForm">
        <table id="tableTwo">
            <tr>
                <td colspan=2>借书卡信息登记</td>
            </tr>
            <tr>
                <td>姓名:</td>
                <td><input name="name"/></td>
            </tr>
            <tr>
                <td>性别:</td>
                <td><input type="radio" checked value="男" name="sex"/>男<input type="radio" value="女" name="sex"/>女</td>
            </tr>
            <tr>
                <td>办卡日期:</td>
                <td><input name="date" value="${date }"/>(yyyy-mm-dd)</td>
            </tr>
            <tr>
                <td>押金:</td>
                <td><select name="deposit">
                        <option value="100">100</option>
                        <option value="200">200</option>
                        <option value="300">300</option>
                        <option value="400">400</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td colspan=2><input type="button" value="确认" id="confirm"/><input type="hidden" name="hide"/> <input type="button" value="取消" id="cancle"/></td> 
            </tr>
        </table>
    </form>
</body>
<script>
    function load(param){
        var msg="";
        $.ajax({
            url:"BookCardServlert",
            type:"post",
            data:param,
            dataType:"json",
            success:function(data){
                msg+="<tr>";
                msg+="<th><input type='checkbox'id='all' onchange='selectAll()'/>全选<input type='checkbox' id='opposite' onchange='notSelectAll()'/>反选</th>";
                msg+="<th>卡号</th>";
                msg+="<th>姓名</th>";
                msg+="<th>性别</th>";
                msg+="<th>办卡日期</th>";
                msg+="<th>押金</th>";
                msg+="</tr>";
                if(data!=null){
                    for(var i=0;i<data.length;i++){
                        msg+="<tr>";
                        msg+="<td><input type='checkbox' name='id' value='"+data[i].cid+"'</td>";
                        $.each(data[i],function(name,value){
                            msg+="<td>"+value+"</td>";
                        });
                        msg+="</tr>";
                    }
                }else{
                    msg+="<tr><td colspan=6><h3>没有你要查询的内容</h3></td></tr>";
                }
                $("#firstTable").html(msg);
            }
        });
    }
    load();
    //模糊查询
    $("#midSelect").click(function(){
        var param=$("input[name='midSelect']").serialize();
        alert(param);
        load(param);
    });
    //新增.修改
    function add(type){
        if($(addForm.name).val()!=""){
            if($(addForm.name).val().length<7){
                if($(addForm.date).val()!=""){
                    var text=$("input[name='date']").val();
                    if(text!=""){
                        var date=/^\d{4}-((0?[1-9])||1[1,2])-(([1,2]\d)||([0]?[1-9])||(3[0,1]))$/;
                        if(date.test(text)){
                            var param=$(addForm).serialize();
                            //alert(param);
                            $.ajax({
                                url:"addBookCard?type="+type,
                                type:"post",
                                data:param,
                                success:function(data){
                                    alert(data);
                                    load();
                                    $("#tableTwo").hide();
                                    $("#div").css("display","none");
                                    $(addForm)[0].reset();
                                },error:function(data){
                                    alert("加载不到数据");
                                    alert("错误编码:"+data.status+",错误信息"+data.statusText);
                                },
                                timeout:1000
                            });
                        }else{
                            alert("日期格式错误");
                        }
                    }
                }else{
                    alert("日期不能为空");
                }
            }else{
                alert("用户名长度最多为7");
            }
        }else{
            alert("用户名不能为空");
        }
    }
    //修改
    $("#update").click(function(){
        //将被选中的多选框序列化
        var param=$(":checkbox:checked").serialize();
        //当参数不为空的时候
        if(param!=""){
            if($(":checkbox:checked").length>1){
                alert("一次只能修改一个");
            }
            //将提交按钮变成修改
            $("#confirm").val("修改");
            $("#tableTwo").show();
            $("#div").css("display","block");
            //获取所有的td
            var $td=$(":checkbox:checked").not("#all").not("#opposite").eq(0).parent().siblings();
            //alert($td[0].nodeName);
            $(addForm.name).val($td.eq(1).text());
            $(addForm.sex).val([$td.eq(2).text()]);
            $(addForm.date).val($td.eq(3).text());
            $(addForm.deposit).val([$td.eq(4).text()]);
            $(addForm.hide).val($td.eq(0).text());
        }else{
            alert("请选择你要选择的数据");
        }
    });
    //看是添加还是删除
    $("#confirm").click(function(){
        if($("#confirm").val()=="确认"){
            add("insert");
            $(addForm)[0].reset();
        }else if($("#confirm").val()=="修改"){
            add("update");
        }
    });
    //删除
    $("#del").click(function(){
        //获取被选中的个数
        var length=$("input[name='id']:checked").size();
        if(length<=0){
            alert("您还没有勾选数据");
        }else{
            var check=$("input[name='id']:checked");
            var param=check.serialize();
            $.ajax({
                url:"del",
                type:"post",
                data:param,
                success:function(data){
                    alert(data);
                    load();
                }
            });
        }
    });
    //全选
    //var both=false;
     function selectAll(){
         $("#opposite").prop("checked",false);
         var flag=$("#all").prop("checked");
         $(":checkbox").not("#opposite").not("#all").prop("checked",flag);
     }
    //反选
    function notSelectAll(){
        //获取所有的复选框
        $("#all").prop("checked",false);
        var $check=$(":checkbox").not("#all").not("#opposite");
        //alert($check.prop("checked"));
        for(var i=0;i<$check.length;i++){
            if($check.eq(i).prop("checked")){
                $check.eq(i).prop("checked",false);
            }else{
                $check.eq(i).prop("checked",true);
            }
        }
    } 
    $("#add").click(function(){
        $("#tableTwo").show();
        $("#confirm").val("确认");
        $(addForm)[0].reset();
        $("#div").css("display","block");
    });
    $("#cancle").click(function(){
        $("#tableTwo").hide();
        $("#div").css("display","none");
    });
</script>
</html>

通过例子我们可以更好的理解ajax的作用

下面我们来总结下

JQUERY:
$.ajax({
type:'post',//可选get
url:'action.jsp页面',//路径
data:data=param,//获取的参数
dataType:"text",//服务器返回的数据类型,可选XML,Json,script,html,text等
success:function(msg){
//这里是ajax提交成功后,action或jsp返回的数据处理函数。msg是返回的数据,数据类型在dataType参数里定义!
},error:function(){
ajax提交失败的处理函数!
}})
 

posted on 2016-09-07 09:46  皮皮聪  阅读(238)  评论(0编辑  收藏  举报

导航