比如在输入手机号码的文本框中输入1时,文本框下面列出数据库中所有以1开头的手机号;输到138时,列出所有以138开头的手机号
...用text的onchange()查询数据库的结果怎样显示在文本框下面呢?谢谢!!!

解决方案 »

  1.   

    Index.html文件:
    <html>
    <head>
    <script>
    var xmlHttp;
    function createXMLHttpRequest()
    {
        if(window.ActiveXObject)
        {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        else if(window.XMLHttpRequest)
        {
            xmlHttp = new XMLHttpRequest();
        }
    }
    function startRequest(data)
    {
        createXMLHttpRequest();
        try
        {
            xmlHttp.onreadystatechange = function(){handleStateChange(data);}
            xmlHttp.open("GET", "data.xml", true);
            xmlHttp.send(null);
        }
        catch(exception)
        {
            alert("xmlHttp Fail");
        }
    }
    function handleStateChange(data)
    {
        if(xmlHttp.readyState == 4)
        {
            if (xmlHttp.status == 200 || xmlHttp.status == 0)
            {
                var root = xmlHttp.responseXML.documentElement;
                try
                {
                    var info = root.getElementsByTagName(data)[0];
                    var text = info.firstChild.nodeValue;
                    var array = text.split("-");
                    var obj = document.getElementById("div1");
                    obj.style.display = "block";
                    obj.innerHTML = "";
                    for(var i=0; i<array.length; i++)
                    {
                        obj.innerHTML = obj.innerHTML + "<span style='display:block' onclick='spanClick()' onmouseover='spanMouseOver()'>" + array[i] + "</span>";
                    }
                }
                catch(exception)
                {
                    var obj = document.getElementById("div1");
                    obj.style.display = "block";
                    obj.innerHTML = "";
                }
            }
        }
    }
    function textChange(data)
    {
        if(data == "")
        {
            var obj = document.getElementById("div1");
            obj.style.display = "block";
            obj.innerHTML = "";
        }
        else
        {
             startRequest(data);
        }
    }
    function spanClick()
    {
        var spanObj=event.srcElement;
        var textObj = document.getElementById("text1");
        textObj.value = spanObj.innerHTML;
        var divObj = document.getElementById("div1");
        divObj.style.display = "none";
        divObj.innerHTML = "";
    }
    var oldSpanObj;
    function spanMouseOver()
    {
        if(oldSpanObj != null)
        {
            oldSpanObj.style.backgroundColor = "#FFFFFF";
        }
        var spanObj=event.srcElement;
        spanObj.style.backgroundColor = "#FF7788";
        oldSpanObj = spanObj;
    }
    </script>
    </head>
    <body>
    <input type="text" id="text1" onpropertychange="textChange(this.value);" />
    <br>
    <div id="div1" style="border:1px solid #8877EE;display:none;position:absolute;width:146;background-color:#EEFFFF">
    </div>
    </body>
    </html>
    注:position:absolute实现div浮动且显示时不占位data.xml文件:
    <?xml version="1.0" encoding="GB2312"?> 
    <root>
        <1>13878888887-13888888888-12688888889</1>
        <13>1378888887-13888888888</13>
        <138>13888888887</138>
    </root>
      

  2.   

    如果不考虑系统结构的话,很难给出方案。
    比如是WinForm还是Web Form。如果是WinForm,客户端和服务器端的通信方式也是一个问题。
      

  3.   

    不好意思,不好意思是 WinForm结构的.谢谢!!
      

  4.   

    winform也好辦,如果數據量不大你就乾脆在加載時把所有手機號從數據庫中取出來放在DataTable dtTemp中,然後輸入時用dtTemp.Select("...")找出相似號碼綁定到一個只有一列的GridControl,接下來就自己搞定吧
      

  5.   

    用数据模糊查询建议用combobox,textbox好象没下拉框功能吧!如果要效果的话,要加其它控件
    if(combobox1.text!="")
    {
    try
    {
    connect=".............(SQL数据连接语句)略";
    connect.open();
    SQLdataApdater da=new sqldataApdater("select 字段 from 表 where 字段 like '%"+combobox1.text+"%'",connect);
    dataset ds=new dataset();
    da.fill(ds);
    combobox1.datasource=ds.tables[0];
    combobox1.displaymeber="字段";
    combobox1.valuemeber="字段";
    connect.close();
    }
    catch{}
    else...............................................
      

  6.   

    使用ajax技术
    可以使用div来显示,div中添加一个listbox,在listbox中添加查询的内容
      

  7.   

    WINFORM中用ComboBox把
    然后用TextChanged事件,里面就进行查询private void currencyTextBox_TextChanged(object sender, EventArgs e)
    {
       try
       {
         
       }
       
       catch
       {    
       }
    }