网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

JS+Ajax如何实现百度智能搜索框

这篇文章主要介绍了JS+Ajax如何实现百度智能搜索框,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

创新互联建站于2013年创立,是专业互联网技术服务公司,拥有项目成都网站建设、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元陵城做网站,已为上家服务,为陵城各地企业和个人服务,联系电话:028-86922220

首先浏览实现后的结果,输入一个a之后会出现包含a的下拉列表,当我们点击某一个的时候,搜索框中就会出现点击的值。实现所需要的主要是ajax+js。

JS+Ajax如何实现百度智能搜索框

前端search.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" 
  pageEncoding="UTF-8"%> 
 
 
Insert title here 
 
 
  *{ 
   margin: 0 auto; 
   padding: 0; 
  } 
  li{ 
    margin:0; 
    height: 20px; 
    width: 200px; 
    list-style: none; 
  } 
  /* #c li:HOVER{ 
   background-color: #F9F9F9; 
  } */ 
  .onmouse{ 
   background-color: #F9F9F9; 
  }  
  .outmouse{ 
   background-color:white; 
  } 
  #contain{ 
   width: 50%; 
  } 
 
 
 
var xmlHttp; 
  function getMoreContents() { 
  var content=document.getElementById("keyword"); 
  if(content.value==""){ 
    ClearContent(); 
    return;//如果不设置,传到后台的是空值,所有的值都会被输出 
  } 
  xmlHttp=creatXMLHttp(); 
  //alert(xmlHttp); 
  //要给服务器发送数据 
  var url="searchServlet?keyword="+escape(content.value); 
  xmlHttp.open("GET",url,true); 
  xmlHttp.onreadystatechange=callback; 
  xmlHttp.send(null); 
} 
  //获取XMLHttp对象 
 function creatXMLHttp() { 
  var xmlHttp; 
  if(window.XMLHttpRequest){ 
    xmlHttp=new XMLHttpRequest(); 
  } 
  if(window.ActiveXObject) 
  { 
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    if(!xmlHttp){ 
      xmlHttp=new ActiveXOject("Msxml2.XMLHTTP"); 
    } 
  } 
  return xmlHttp; 
} //获取XMLHttp对象 
  function callback() { 
  if(xmlHttp.readyState==4 && xmlHttp.status==200){ 
     var result=xmlHttp.responseText; 
     //解析数据 
     var json=eval("("+result+")"); 
     //动态显示数据,线束数据在输入框对的下面 
     setContent(json); 
  } 
} 
//设置关联数据的展示 
function setContent(contents) { 
  ClearContent(); 
  var size=contents.length; 
  for(var i=0;i 
 
 
   
     
        
       
    
                      
  •              
        
       

    后台searchServlet.Java

    package search; 
    import java.io.IOException; 
    import java.util.ArrayList; 
    import java.util.List; 
    import net.sf.json.JSONArray; 
    import javax.servlet.ServletException; 
    import javax.servlet.annotation.WebServlet; 
    import javax.servlet.http.HttpServlet; 
    import javax.servlet.http.HttpServletRequest; 
    import javax.servlet.http.HttpServletResponse; 
    /** 
     * Servlet implementation class searchServlet 
     */ 
    @WebServlet("/searchServlet") 
    public class searchServlet extends HttpServlet { 
      private static final long serialVersionUID = 1L; 
      static List datas=new ArrayList(); 
      static {//假数据,模拟数据库读取 
        datas.add("ajax"); 
        datas.add("bjax"); 
        datas.add("ajaxfd"); 
        datas.add("bfvd"); 
        datas.add("dafdx"); 
        datas.add("fdax"); 
        datas.add("ahg"); 
        datas.add("ddx"); 
      } 
      /** 
       * @see HttpServlet#HttpServlet() 
       */ 
      public searchServlet() { 
        super(); 
        // TODO Auto-generated constructor stub 
      } 
      /** 
       * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
       */ 
      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
        // TODO Auto-generated method stub 
        doPost(request, response); 
      } 
      /** 
       * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
       */ 
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
        // TODO Auto-generated method stub 
        request.setCharacterEncoding("UTF-8"); 
        response.setCharacterEncoding("UTF-8"); 
        String keyword=request.getParameter("keyword"); 
        //System.out.println(keyword); 
        List listdata= getData(keyword); 
      // 返回json,以流的形式写到前台 
        response.getWriter().write(JSONArray.fromObject(listdata).toString()); 
      } 
      //获取假数据中符合条件的值 
      public List getData(String keyword) 
      { 
        List list=new ArrayList(); 
        for(String data:datas) 
        { 
          if(data.contains(keyword)){ 
            list.add(data); 
          } 
        } 
        return list; 
      } 
    }

    xml配置

     
     
      
      searchServlet 
      search.searchServlet 
      
      
      searchServlet 
      /search/searchServlet 
      
     DropMeum 
      
      index.html 
      index.htm 
      index.jsp 
      default.html 
      default.htm 
      default.jsp 
      
    

    目录结构

    JS+Ajax如何实现百度智能搜索框

    感谢你能够认真阅读完这篇文章,希望小编分享的“JS+Ajax如何实现百度智能搜索框”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!


    分享文章:JS+Ajax如何实现百度智能搜索框
    分享地址:http://bjjierui.cn/article/pdddgo.html

    其他资讯