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‘,//可选geturl:‘action.jsp页面‘,//路径data:data=param,//获取的参数dataType:"text",//服务器返回的数据类型,可选XML,Json,script,html,text等success:function(msg){//这里是ajax提交成功后,action或jsp返回的数据处理函数。msg是返回的数据,数据类型在dataType参数里定义!},error:function(){ajax提交失败的处理函数!}})
 
时间: 2024-10-13 22:53:08

ajax和jquery的相关文章

032.Ajax+Json+Jquery

AjjA: AjaxJ: JSONJ: jQuery -----------------------------------------------JSONJavascript Object NotationJS对象标记 class User{ public int Id{get;set;} public string Name{get;set;} public string Phone{get;set;} // public string HomeAddress{get;set;} // pu

Struts Work With AJAX ON JQUERY

原文地址:http://blog.csdn.net/zhqingyun163/article/details/5208766 项目中想用ajax,于是在网上扒了n多资料,犯了n多错误,从今天上班到现在一直在处理这个问题,终于还是把它解决了. 当我看到页面的ajax显示后,我兴奋异常,为了记录自己学习的ajax历程,也为了让更多的人少走弯路,特写此一文以记之! 废话不说了,为了更好的理解,我重做了一个小的项目,以加深印象.现在就以这个小项目开始我们的ajax之旅. 第一步:创建 名为"ajax&q

通过原生js的ajax或jquery的ajax获取服务器的时间

在实际的业务逻辑中,经常是与时间相关的,而前端能获得的时间有两个:客户端的时间,服务器的时间.客户端时间通过 javascript中的Date对象可以获取,如 Java代码   var dt = new Date(); var tm = dt.getTime(); 那么tm就是客户端的时间,另外也可以通过对应的getFullYear(),getMonth(),getDate()取到对应的年月日等...但这个时间可靠吗?好吧,那取服务器时间吧经常用到的是后台写一个php,jsp,cgi,asp..

web基础知识(二)关于ajax,Jquery传值最基础东西

这次还是一些关于jQuery,ajax前后台传值情况, 是自己在做点小东西过程中遇到的,记录下来为自己也方便别人 列表很多,点击编辑和删除无刷新的进行操作的话,肯定是ajax了,因为无刷新嘛,可能有的朋友会说直接传值,传ID到Action删除不就OK了,用得着写js么,纯粹自己找麻烦嘛. 其实这里重点是无刷新的啦, 这个上传后到这里来,有个预览功能,把本次的全部预览,如果全部刷新的话,那么刚才上传的就不会在这个页面了,so,还是采用无刷新的比较好. 点击编辑跳到一个新的页面的时候有两种方法可以选

web基础知识(三)关于ajax,Jquery传值最基础东西

今天补充一下两个小功能,一个是关于radio单选框的情况,如何在前面选了后,传到后台,编辑修改的时候再次传回来,并且在当时选的那个上:再一个就是关于添加小标签的时候添加接着弹出在下面,并点击出现删除. 一:radio 1 <div class="newlylist"> 2 <div class="newlyhead">图示商品:</div> 3 <div class="newlycontent">&

Ajax使用jQuery与后台交互

Ajax使用jQuery与后台交互 Ajax使用jQuery与后台交互 前言 Ajax Ajax的优点 XmlHttpRequest对象 数据篇 jquery-form的方式提交数据 自定义数据篇 自定义上传的数据 文件篇 前台使用ajaxuploadjs对文件进行上传 后台使用commons-fileuploadjar上传文件 MyFilejava文件 UploadUtiljava工具 JAR包 项目下载路径 后言 前言 Ajax Ajax就是异步JavaScript and XML缩写. A

JavaScript、Ajax与jQuery的关系

简单总结: 1.JS是一门前端语言. 2.Ajax是一门技术,它提供了异步更新的机制,使用客户端与服务器间交换数据而非整个页面文档,实现页面的局部更新. 3.jQuery是一个框架,它对JS进行了封装,使其更方便使用.jQuery使得JS与Ajax的使用更方便 详细情况: Actually only one of them is a programming language. Javascript is a programming language which is used mainly in

asp.net中ScriptManager自带Ajax与jQuery事件冲突

问题引诉:最近在使用asp.net自带的无刷新提交ScriptManager时,发现一个问题,就是和我自己用jQuery写的一些事件函数和局部刷新相冲突.通过在网上收索,发现很多人都遇到这个同样的问题.最终还是找到的解决的办法,在此我想将其解决的办法分享出来供大家参考. 问题解决办法: 方法1.两者实现都能够实现页面的无刷新效果,所以可以保留其中的一种即可: 方法2.如果必须要两者混合应用,那么在用jQuery绑定事件是就要注意一些了 我们平时在jQuery中绑定事件最常用的方式有以下三种:以c

Ajax 之jquery(4) 入门jQuery之一

这是否意味着如果你尚未成为脚本编程高手,就无法在自己的网站中善用JavaScript 呢?完全不是!本章将向你展示如何利用JavaScript 工具包:借助已经预先编写好的库和函数框架,你会在项目实践中真切地感受到脚本编程的强大.目前有许多工具包可供下载,而且大部分都是免费的.本书选用了可免费下载且开源的实用程序和控件集jQuery(jquery.com)来构建交互式Web 应用程序.我们认为它是最出色的JavaScript 库之一.在接下来的几章中,我们将介绍如何使用jQuery 来拖放页面元

ajax的jquery写法和原生写法

一.ajax的简介 Ajax被认为是(Asynchronous(异步) JavaScript And Xml的缩写).现在,允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax. 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式. 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式 . 二.ajax的缺陷 AJAX大量使用了JavaScript和AJAX引擎,而这个取决于浏览器的支持.IE5.0及以上.Mozilla1.0.NetSc