关于前台搜索功能 我想在前台首页的头部进行搜索,可是在文本框里面,怎么才可以将下拉列表里面的值传值,之后接收id进行查询,希望各位高手,给点思路和代码!谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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 %> 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 我的是php的代码,怎么搞到asp里去了,太长了 参考http://www.w3school.com.cn/php/php_ajax_suggest.asp php无限级分类,在phplib模板中如何输出到html呢 php 正则表达替换,为何不能替换 更新数据的判断 继续提问 。。关于 session的。。。。。请高手来下罗。。。 PHP中的&怎么用? php代码书写 请教转义字符 \ 的问题。 No power to use this! 小弟求教一个参数传递的问题!刚开始做php请大家帮忙!谢谢 minij2ee常见问题(FAQ) 关于条件语句中赋值&&断开socket连接 关于数据类型text的选择问题
在下面的 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 %>
项目名称: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
http://www.w3school.com.cn/php/php_ajax_suggest.asp