mg4377娱乐娱城官网_mg4377娱乐手机版_www.mg4377.com

当前位置: mg4377娱乐娱城官网 > www.mg4377.com > 正文

原生Ajax和Jquery的Ajax使用示例,用Jquery完成多元下

时间:2019-06-01 09:46来源:www.mg4377.com
首先我们须求先创建好数据库,将有个别数目插入进去 选用Ajax和Jquery合营数据库达成下拉框的二级联合浮动的示范,ajaxjquery 第一我们须求先创建好数据库,将一些数码插入进去 要求

首先我们须求先创建好数据库,将有个别数目插入进去

选用Ajax和Jquery合营数据库达成下拉框的二级联合浮动的示范,ajaxjquery

第一我们须求先创建好数据库,将一些数码插入进去

要求两张表:

province:省份表

city: 城市表

如图:

图片 1

下一场再在java中国建工业总会公司立有关的实体类与之对应

图片 2

再然后,大家就会起首做jdbc的操作了

public class ConnectionFactory { 
 private static String driver; 
 private static String url; 
 private static String user; 
 private static String password; 
 static { 
  Properties prop = new Properties(); 
  //读取文件 

  try { 
   InputStream in = ConnectionFactory.class.getResourceAsStream("./jdbc.properties"); 

   prop.load(in); 
   driver = prop.getProperty("jdbc.driver"); 
   url = prop.getProperty("jdbc.url"); 
   user = prop.getProperty("jdbc.user"); 
   password = prop.getProperty("jdbc.password"); 
  } catch (IOException e) { 
   e.printStackTrace(); 
  } 

 } 

 /** 
  * 获取连接对象 
  * @return 
  */ 
 public static Connection getConnection(){ 
  Connection conn = null; 

  try { 
   Class.forName(driver); 
   conn = DriverManager.getConnection(url, user, password); 

  } catch (Exception e) { 
   throw new RuntimeException(e); 
  } 

  return conn; 
 } 

 /** 
  * 关闭资源 
  * @param conn 
  * @param pstmt 
  * @param stmt 
  * @param rs 
  */ 
 public static void close(Connection conn,PreparedStatement pstmt,Statement stmt,ResultSet rs){ 

   try { 
    if (conn != null) { 
     conn.close(); 
    } 

    if (pstmt != null) { 
     pstmt.close(); 
    } 

    if (stmt != null) { 
     stmt.close(); 
    } 

    if (rs != null) { 
     rs.close(); 
    } 
   } catch (SQLException e) { 
    throw new RuntimeException(e); 
   } 

 } 

第贰大家得以在页面加载的时候获得具有省区的音讯,SQL语句如下

Connection conn = null; 
 PreparedStatement pstmt = null; 
 Province province2 = null; 

 @Override 
 public ArrayList<Province> findAllPro() { 
  ResultSet rs = null; 
  ArrayList<Province> pros = null; 
  try { 
   String sql = "select id,place from province"; 
   conn = ConnectionFactory.getConnection(); 
   pstmt = conn.prepareStatement(sql); 
   pros = new ArrayList<Province>(); 

   rs = pstmt.executeQuery(); 

   while(rs.next()){ 
    Province province = new Province(); 
    province.setId(rs.getInt(1)); 
    province.setPlace(rs.getString(2)); 
    pros.add(province); 
   } 

  } catch (SQLException e) { 
   throw new RuntimeException(e); 
  } 

  return pros; 
 } 

将查到的数码放到后台,建构1个SelectedServlet类,用于收纳查询到的具备省份的音讯

response.setContentType("application/json;charset=utf-8"); 
  response.setCharacterEncoding("utf-8"); 
  request.setCharacterEncoding("utf-8"); 
  //创建一个Place对象 
  ArrayList<Province> pros= new Place().findAllPro(); 
  PrintWriter out = response.getWriter(); 
  //将集合直接转换为Json对象 
  out.write(JSONArray.fromObject(pros).toString()); 

在此地会用到集合调换Json对象,我们要求导入以下多少个包

图片 3

原生Ajax和Jquery的Ajax使用示例,用Jquery完成多元下拉框无刷新的联合浮动。下一场大家早先写前台页面:

<body> 
  省份:<select id="province"> 
   <option>--请选择省份--</option> 
  </select> 

  城市:<select id="city"> 
    <option>--请选择城市--</option> 
   </select> 
  <br/><br/> 

 </body> 

下一场jQuery代码如下:(由于自个儿导入的jQuery版本十分的低,所以采纳的艺术是getJSON,而不是getJson)

$.getJSON("SelectedServlet",function(data,textStatus){ 
 var provinces = data; 

 var res = ""; 
 for(var i =0;i<provinces.length;i  ){ 
  res  = "<option>" provinces[i].place "</option>"; 
 } 
  $("#province").append(res); 
 }); 

如此就能够在页面加载的时候得到到数量

图片 4

然后大家再来做联合浮动,首先给下拉框加多一个change事件,然后拿走选中的新闻,将当选的音信发送到另一个CityServlet中

//下拉框改变时触发的事件 
 $("#province").change(function(){ 
 var seled = $("option:selected").html(); 

 $("span").html(seled); 
 $.getJSON("CityServlet",{ 
  "province":encodeURI(encodeURI(seled)) 
     },function(data){ 
  $("#city").html(""); 
  var citys = data; 
  var res = ""; 
  for(var i = 0;i<citys.length;i  ){ 
   res  = "<option>" citys[i].place "</option>"; 
  } 
  $("#city").append(res); 
 }); 

 }); 

服务器通过获取的音信透过sql语句询问出来,SQL代码如下:

public ArrayList<City> findAllCityByPro(String name) { 
  ResultSet rs = null; 
  ArrayList<City> citys = null; 
  try { 
   //通过名字获得所有值 
   String sql = "select c.city_place from city c ," 
       "province p where c.province_id = " 
       " (select id from province where place = '"  name  "') " 
       " and c.province_id = p.id"; 
   conn = ConnectionFactory.getConnection(); 
   pstmt = conn.prepareStatement(sql); 
   citys = new ArrayList<City>(); 
   System.out.println(sql); 
   rs = pstmt.executeQuery(); 

   while(rs.next()){ 
    City city = new City(); 
    city.setPlace(rs.getString(1)); 
    citys.add(city); 
   } 
   System.out.println(citys); 

  } catch (SQLException e) { 
   e.printStackTrace(); 
  } 

  return citys; 
 } 

将查询到的数额发送到后台,后台接受到数码后将其转移为Json对象,并经过回调函数发送到前台,然后前台就能够透过事件一向拿走到数码,而不用各个跳转页面,那正是Ajax(Asynchronous Javascript And XML),

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
   throws ServletException, IOException { 
  response.setContentType("application/json;charset=utf-8"); 
  response.setCharacterEncoding("utf-8"); 
  request.setCharacterEncoding("utf-8"); 
//  String proName = "浙江"; 
  String proName = URLDecoder.decode(URLDecoder.decode(request.getParameter("province"), "utf-8"), 
    "utf-8"); 
  ArrayList<City> citys= new Place().findAllCityByPro(proName); 
  PrintWriter out = response.getWriter(); 
  out.write(JSONArray.fromObject(citys).toString()); 

 } 

至于展现页面包车型大巴代码也在头里写到jQuery语句中了

效用如下:

图片 5

上述那篇使用Ajax和Jquery同盟数据库达成下拉框的二级联动的言传身教正是小编分享给大家的全部内容了,希望能给大家二个参照,也愿意大家多多支持帮客之家。

首先我们须求先创设好数据库,将有个别数目插入进去 要求两张表: prov...

图片 6

最开端计划用.NET只带的AJAX完成,开掘达不到想要的功效。后来采纳JQuery中AJAX成效,通过异步调用C#写的web服务达成。

亟待两张表:

AJAX.jpg

load()方法可以说是JQuery中最简易的AJAX方法,它用来获取目的服务器的响应并将结果展现到页面上。load方法就是Jquery对AJAX的包裹。还足以接纳$.post()和$.get()来兑现post或get格局的AJAX调用,对于复杂的场地,还足以应用AJAX()方法。

province:省份表

一、小说前言

AJAX = 异步 JavaScript 和 XML。
AJAX 是壹种用于创设急忙动态网页的本事。
透过在后台与服务器进行少些数据交流,AJAX 能够使网页达成异步更新。那意味着能够在不重复加载整个网页的意况下,对网页的某有个别开始展览翻新。
观念的网页(不应用 AJAX)倘使急需创新内容,必需重载整个网页面。

你或然感兴趣的稿子:

  • 基于jQuery的select下拉框选拔触发事件实例剖判
  • jquery中dom操作和事件的实例学习 下拉框应用
  • jQuery操作select下拉框的text值和value值的诀窍
  • jquery获得下拉框值的代码
  • jquery及原生js获取select下拉框选中的值示例
  • jquery动态加载select下拉框示例代码
  • 依据jquery实现的可编写制定下拉框达成代码
  • 采纳jquery完成下拉框的剥夺与启用
  • jQuery实现监听下拉框选中内容发生变动操作示例

city: 城市表

二、原生Ajax访问Servlet

后台代码

@WebServlet("/myServlet")
public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String name = req.getParameter("name");
        PrintWriter writer = resp.getWriter();
        if (name.equals("123456")) {
            writer.print("success");
        } else {
            writer.print("error");
        }
        writer.close();
    }
}

Ajax代码

function sendRequestByPost(){
      //定义异步请求对象
      var xmlReq;
      //检测浏览器是否直接支持ajax
      if(window.XMLHttpRequest){
        xmlReq=new XMLHttpRequest();
      }else{
        xmlReq=new ActiveObject('Microsoft.XMLHTTP');
      }

      //设置回调函数
      xmlReq.onreadystatechange=function(){
        if (xmlReq.readyState==4&&xmlReq.status==200) {
          //获取服务器的响应值
          var result=xmlReq.responseText;
          if(result=="success"){
            document.getElementById("account").style.borderColor = "green";
          }else {
            document.getElementById("account").style.borderColor = "red";
          }
        }
      };


      /*
      * 创建异步Get请求
      *  //创建异步get请求
      * var name = document.getElementById("account").value;
      * var url="Hello?name=" name;
      * xmlReq.open("GET",url,true);
      * //发送请求
      * xmlReq.send(null);
      *
      * */

      //创建异步Post请求
      var url="/myServlet";
      xmlReq.open("POST",url,true);
      xmlReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
      //发送请求
     var name = document.getElementById("account").value;
      var data = "name="   name;
      xmlReq.send(data);
    }

图片 7

QQ图片20171025202413.png

图片 8

QQ图片20171025202507.png

图片 9

QQ图片20171025202609.png

Jquery中的Ajax
亟待引进jquery.js文件代码如下

<input type="text" name="name" id="account"><br>
  <button id="sub">提交</button>
  <script src="jquery.min.js"></script>
  <script>
    $("#sub").click(function () {
      var name = $("#account").val();
      alert(name);
      $.ajax({
        //提交数据的类型 POST GET
        type:"POST",
        //提交的网址
        url:"myServlet",
        //提交的数据
        data:{name:name},
        //返回数据的格式
        dataType: "text",//"xml", "html", "script", "json", "jsonp", "text".
        //在请求之前调用的函数
//     beforeSend:function(){alert("发送请求")},
        //成功返回之后调用的函数
        success:function(data){
          if (data=="success") {
            $("#account").css("borderColor","green");
          }else {
            $("#account").css("borderColor","red");
          }
        }   ,
        //调用执行后调用的函数
        //complete: function(){
        //alert("请求结束");
        //HideLoading();
        //},
        //调用出错执行的函数
        error: function(){
        //请求出错处理
          alert("请求出错");
        }
      });
    });
  </script>

图片 10

QQ图片20171025202413.png

图片 11

QQ图片20171025202507.png

图片 12

QQ图片20171025202609.png

如图:

图片 13

然后再在java中创造有关的实体类与之对应

图片 14

再然后,大家就能够开首做jdbc的操作了

编辑:www.mg4377.com 本文来源:原生Ajax和Jquery的Ajax使用示例,用Jquery完成多元下

关键词: JAVA与http的情缘