JSON+AJAX

1、在HTML中,有這樣一個表單:

  1. <form method="post" name="searchform" id="searchform" method="/sek.go"> 
  2. <input name="query" value="" type="text" id="query" /> 
  3. <input type=”submit” value="查詢"></input> 
  4. </form> 

 

當然,要想在HTML中使用Js功能,必須在<head/>中加入

  1. <script type="text/javascript"src="/style/js/ajax.js"></script> 

 

2、然後在ajax.js文件中加入如下代碼

  1. function userSearch(){  
  2.  
  3. var query = $("#searchform input[@name='query']").val();   
  4.  
  5.  
  6. $.post("/userSearch.htm", { query: query } ,function callback(json){  
  7.  
  8. var userlist = $.parseJSON(json);  
  9.  
  10. userList(userlist);  
  11.  
  12. });   
  13.  
  14. }  
  15.  

解釋如下:

1)、"#searchform input[@name='query']";的意思是: 選擇id爲searchform其下的(name屬性值爲’query’的)input標籤

2)、$(“”).val()意爲要得到(“”)所選中屬性的值;

3)、在$.post()中,第一項參數是指定目標servlet,即要把本post請求發給的那個servlet。

第二項是本post請求所攜帶的數據;“:”前的爲key或者name,後爲value;

第三項是回調函數,其內若有形參,則表示要對從servlet返回的值進行處理,這裏的callback的功能是將JSON對象json轉換成了JS對象userlist,然後將JS對象傳入函數userList

3、post請求攜帶了名爲query的參數去了後臺,在servlet中進行處理:

  1. //從名爲"query"能的參數中取出post帶過來的數據  
  2. String query = request.getParameter("query");  
  3. if (query != null && !query.isEmpty()  
  4. && !query.trim().equalsIgnoreCase("")) {  
  5. //如果"query"的值不爲空,就用'query'爲參數構建HQL語句  
  6. String hql = "from TUser as user where user.userName like '"+ query + "%'";  
  7. //到庫表TUser中進行查詢,並得到一個表結構  
  8. List list = weilav3TUserDAO.getListByHQL(hql);  
  9. if (list != null && !list.isEmpty()) {  
  10. //若list不爲空,則將其轉換成JSON對象,並存入jsonArray中  
  11. JSONArray jsonArray = JSONArray.fromObject(list);   
  12. //下面就是把存有查詢結果的JSON對象返給頁面  
  13. response.setContentType("text/html;charset=utf-8");  
  14. PrintWriter out = response.getWriter();  
  15. out.println(jsonArray);  
  16. ……  
  17. }else {……} 
發佈了75 篇原創文章 · 獲贊 6 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章