我想在前台首页的头部进行搜索,可是在文本框里面,怎么才可以将下拉列表里面的值传值,之后接收id进行查询,希望各位高手,给点思路和代码!谢谢

解决方案 »

  1.   

    AJAX Suggest实例
    在下面的 AJAX 例子中,我们会演示当用户向一个标准的 HTML 表单中输入数据时网页如何与 web 服务器进行通信。在下面的文本框中输入名字: First Name:
    Suggestions:Anna , Amanda例子解释 - HTML表单
    表单的 HTML 代码:<form> First Name:<input type="text" id="txt1" onkeyup="showHint(this.value)" />
    Suggestions: <span id="txtHint">正如您看到的,这是一个简单的带有名为 "txt1" 输入域的 HTML 表单。输入域的事件属性定义了一个由 onkeyup 事件触发的函数。表单下面的段落包含了一个名为 "txtHint" 的 span,这个 span 充当了由 web 服务器所取回的数据的位置占位符。当用户输入数据时,名为 "showHint()" 的函数就会被执行。函数的执行是由 "onkeyup" 事件触发的。另外需要说明的是,当用户在文本域中输入数据时把手指从键盘按键上移开时,函数 showHint 就会被调用。例子解释 - showHint() 函数
    showHint() 函数是一个位于 HTML 页面 head 部分的很简单的 JavaScript 函数。此函数包含以下代码:function showHint(str) { if (str.length==0) { document.getElementById("txtHint").innerHTML=""; return; } xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("您的浏览器不支持AJAX!"); return; } var url="gethint.asp"; url=url+"?q="+str; url=url+"&sid="+Math.random(); xmlHttp.onreadystatechange=stateChanged; xmlHttp.open("GET",url,true); xmlHttp.send(null); }
    每当有字符输入文本框时,此函数就会执行。假如文本域中存在某些输入,函数就会执行:定义回传数据的服务器的 url(文件名)
    使用文本框的内容向 url 添加参数(q)
    添加一个随机的数字,以防止服务器使用某个已缓存的文件
    创建一个 XMLHTTP 对象,并告知此对象当某个改变被触发时执行名为 stateChanged 的函数
    向服务器发送一个 HTTP 请求
    如果输入域为空,此函数仅仅会清空 txtHint 占位符的内容
    例子解释 - GetXmlHttpObject() 函数
    上面的例子可调用名为 GetXmlHttpObject() 的函数。此函数的作用是解决为不同浏览器创建不同的 XMLHTTP 对象的问题。这是此函数的代码:function GetXmlHttpObject() { var xmlHttp=null; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; }
    例子解释 - stateChanged() 函数
    stateChanged() 函数包含下面的代码:function stateChanged() { if (xmlHttp.readyState==4) { document.getElementById("txtHint").innerHTML=xmlHttp.responseText; } }
    每当 XMLHTTP 对象的状态发生改变时,stateChanged() 函数就会执行。当状态变更为 4(“完成”)时,txtHint 占位符的内容就被响应文本来填充。AJAX JavaScript
    这是 JavaScript 代码,存储在文件 "clienthint.js" 中:var xmlHttp function showHint(str) { if (str.length==0) { document.getElementById("txtHint").innerHTML=""; return; } xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("您的浏览器不支持AJAX!"); return; } var url="gethint.asp"; url=url+"?q="+str; url=url+"&sid="+Math.random(); xmlHttp.onreadystatechange=stateChanged; xmlHttp.open("GET",url,true); xmlHttp.send(null); } function stateChanged() { if (xmlHttp.readyState==4) { document.getElementById("txtHint").innerHTML=xmlHttp.responseText; } } function GetXmlHttpObject() { var xmlHttp=null; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; }
    AJAX 服务器页面 - ASP 和 PHP
    其实不存在什么“AJAX 服务器”。AJAX 页面可以由任一因特网服务器提供服务。在上一节的例子中被 JavaScript 调用的服务器页面是一个简单的名为 "gethint.asp" 的 ASP 文件。下面我们列出了这个服务器页面代码的实例,使用 ASP 来编写。AJAX ASP 实例
    "gethint.asp" 页面中的代码针对 IIS 使用 VBScript 编写。它会检查一个名字数组,然后向客户端返回相应的名字:<% response.expires=-1 dim a(30) '用名字为数组赋值 a(1)="Anna" a(2)="Brittany" a(3)="Cinderella" a(4)="Diana" a(5)="Eva" a(6)="Fiona" a(7)="Gunda" a(8)="Hege" a(9)="Inga" a(10)="Johanna" a(11)="Kitty" a(12)="Linda" a(13)="Nina" a(14)="Ophelia" a(15)="Petunia" a(16)="Amanda" a(17)="Raquel" a(18)="Cindy" a(19)="Doris" a(20)="Eve" a(21)="Evita" a(22)="Sunniva" a(23)="Tove" a(24)="Unni" a(25)="Violet" a(26)="Liza" a(27)="Elizabeth" a(28)="Ellen" a(29)="Wenche" a(30)="Vicky" '从URL取得参数q q=ucase(request.querystring("q")) '如果q的长度大于0,则查找所有的hint if len(q)>0 then hint="" for i=1 to 30 if q=ucase(mid(a(i),1,len(q))) then if hint="" then hint=a(i) else hint=hint & " , " & a(i) end if end if next end if '如果找不到hint,则输出"no suggestion" '或者输出正确的值 if hint="" then response.write("no suggestion") else response.write(hint) end if %>
      

  2.   

    AJAX Suggest 即自动提示,google、baidu上都有应用工具:myeclipse 6.5
    项目名称:webs
    参考:w3schoolsuggest.html
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
        <title>ajax请求实例</title>
        <script type="text/javascript" src="client.js">    
        </script>
    </head><body>
        <form action=""> 
            <!- - 鼠标离开该区域,获得该文本内容 - ->
            请输入要查找的人名(英):<input type="text" id="txt" onkeyup="showHint(this.value);"/>
        </form>
            相关内容:<span id="txtHint"></span>
    </body>
    </html>
    client.jsvar xmlHttp;
    function showHint(str) { 
        if (str.length == 0) {
            document.getElementById("txtHint").innerHTML = "";
            return;
        }    xmlHttp = GetXmlHttpObject();
        if (xmlHttp == null) {
            alert("you brower is not support ajax");
            return;
        }    var url = "http://localhost:8080/webs/gethint.jsp";
        //在请求的url后面加上了参数q和sid,参数传到服务器页面gethint.jsp后得到的值被放入<span id="txtHint"></span>
        url = url + "?q=" + str;
        url = url + "&sid=" + Math.random(); 
        xmlHttp.onreadystatechange = stateChanged;
        xmlHttp.open("GET", url, true);
        xmlHttp.send(null);
    }function stateChanged() {
        if (xmlHttp.readyState == 4) {
            //这里将得到的数据填入
            document.getElementById("txtHint").innerHTML = xmlHttp.responseText;
        }
    }function GetXmlHttpObject() {
        var xmlHttp = null;
        try {
            // Firefox, Opera 8.0+, Safari
            xmlHttp = new XMLHttpRequest();
        }
        catch (e) {
            // Internet Explorer
            try {
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (e) {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
        }
        return xmlHttp;
    }gethint.jsp
    <%@ page language="java" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <head>
            <title>My JSP 'gethint.jsp' starting page</title>
        </head>    <body>
            <%
                String name[] = new String[30];
                name[0] = "Anna";
                name[1] = "Brittany";
                name[2] = "Cinderella";
                name[3] = "Diana";
                name[4] = "Eva";
                name[5] = "Fiona";
                name[6] = "Gunda";
                name[7] = "Hege";
                name[8] = "Inga";
                name[9] = "Johanna";
                name[10] = "Kitty";
                name[11] = "Linda";
                name[12] = "Nina";
                name[13] = "Ophelia";
                name[14] = "Petunia";
                name[15] = "Amanda";
                name[16] = "Raquel";
                name[17] = "Cindy";
                name[18] = "Doris";
                name[19] = "Eve";
                name[20] = "Evita";
                name[21] = "Sunniva";
                name[22] = "Tove";
                name[23] = "Unni";
                name[24] = "Violet";
                name[25] = "Liza";
                name[26] = "Elizabeth";
                name[27] = "Ellen";
                name[28] = "Wenche";
                name[29] = "Vicky";            //将用户输入的字符进行比较,在输入框下面给出提示
                String first = request.getParameter("q");
                if (first != null && !first.equals("")) {
                    String hint = "";
                    for (int i = 0; i < 30; i++) { 
                        //indexOf方法得到字符出现的位置的索引
                        if (name[i].indexOf(first) >=0 && name[i].indexOf(first)<=2) {
                            if (hint.equals("") || hint == null) {
                                hint = name[i];
                            } else {
                                hint = hint + "," + name[i];
                            }
                        }
                    }
                    out.print(hint);            } else {
                    out.print("...");
                }
            %>
        </body>
    </html>效果:
    http://hiphotos.baidu.com/shiryu963/pic/item/c21e4803aafa3c96d53f7ca5.jpg
      

  3.   

    我的是php的代码,怎么搞到asp里去了,太长了
      

  4.   

    参考
    http://www.w3school.com.cn/php/php_ajax_suggest.asp