用AJAX实现类似GOOGLE搜索框的功能

第一个页面;

 function getHTTPObject()
        {
        var waystation=null;
        if(window.ActiveXObject)
        {
        waystation=new ActiveXObject("Microsoft.XMLHTTP");
        }
        else if(window.XMLHttpRequest)
        {
        waystation=new XMLHttpRequest();
        }
        else
        {
         waystation=false;
         }
         return waystation;
        }
        function addCitys()
        {
            inputField = document.getElementById("textfield");           
   completeTable = document.getElementById("table1");
     completeDiv = document.getElementById("popup");
           completeBody = document.getElementById("body1");
            var s=document.all.item("textfield").value
           var aa=encodeURI(s);
            if(s=="")
            return;
         var xmlrequest=getHTTPObject();
         xmlrequest.open("post","getCity.aspx?id="+aa);  
         xmlrequest.onreadystatechange=function()
         {
          if(xmlrequest.readyState==4)
          {
                 //xmlrequest.responseText为你AddCity中输出的那段字符串;
                    setNames(xmlrequest.responseText);
         }
         }
         xmlrequest.send(null);
        }

/生成与输入内容匹配行
           function setNames(names)
           {  
              if(names=="")
              {
              clearNames();
              return;
              }
              clearNames();      
              setOffsets();
              var row, cell, txtNode;
              var s=names.split("$");
             
              for (var i = 0; i < s.length; i++)

               {

                 //s[i]为td的
                    var nextNode =s[i];
                    row = document.createElement("tr");
                    cell = document.createElement("td");
                    cell.onmouseout = function() {this.style.backgroundColor='';};
                    cell.onmouseover = function() {this.style.backgroundColor='#ffff00';};
                    cell.onclick = function() { completeField(this); } ;
                    cell.pop="T";
                    txtNode = document.createTextNode(nextNode);
                   cell.appendChild(txtNode);
                    row.appendChild(cell);
                    document.getElementById("body1").appendChild(row);
              }
           }

//用来设置当鼠标失去焦点后文本框的隐藏
        document.οnmοusedοwn=function()
        {
            if(!event.srcElement.pop)
             clearNames();
         }//填写输入框
    function completeField(cell)
    {
        inputField.value = cell.firstChild.nodeValue;
        clearNames();
    }
 //清除自动完成行
    function clearNames()
    {
         completeBody = document.getElementById("body1");
        var ind = completeBody.childNodes.length;
        for (var i = ind - 1; i >= 0 ; i--)
        {
                completeBody.removeChild(completeBody.childNodes[i]);
        }
        completeDiv = document.getElementById("popup");
        completeDiv.style.border = "none";
 }

        //设置显示位置               
           function setOffsets()
           {
               completeTable.style.width = inputField.offsetWidth; + "px";
               var left = calculateOffset(inputField, "offsetLeft");
               var top = calculateOffset(inputField, "offsetTop") + inputField. offsetHeight;
               completeDiv.style.border = "black 1px solid";
               completeDiv.style.left = left + "px";
               completeDiv.style.top = top + "px";
           }
           function calculateOffset(field, attr) {
    var offset = 0;
     while(field) {
     offset += field[attr];
     field = field.offsetParent;
    }
    return offset;
   } 

 

<html>

<body>
              <input name="textfield" id="textfield" type="text" class="input1" οnkeyup="addCitys();" maxlength="20" style="width: 68px" /><div  id="popup" style="POSITION: absolute">
       <table id="table1" cellspacing="0" cellpadding="0" bgcolor="#fffafa"  border="0" >
        <tbody id="body1"   >
        </tbody>
       </table>
      </div>

</body>

</html

 

第二个页面(getCity.aspx

注意:必须删除这个页面中的所有的HTML

然后在cs文件中做自己想要的处理,作为字符串输入;

getCity.cs

     string id = Request.QueryString["id"].ToString();
        SqlConnection con = new SqlConnection(sqlstr);
        con.Open();
        SqlDataAdapter da = new SqlDataAdapter("select * from airport  where EnName like '%" + id + "%' or CnName like '%"+id+"%'", con);
        DataSet ds = new DataSet();
        da.Fill(ds);
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            sb.Append(ds.Tables[0].Rows[i][2].ToString() + "   "+ds.Tables[0].Rows[i][1].ToString() + "$");
        }
        Response.Write(sb.ToString());

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值