Ajax之前,基于Web的应用必须提交整个页面才能验证数据,还有一种作法就是在客户端通过Javascript来验证表单。当然,能在客户端通过Javascript完成验证可以减轻服务器负担,应该大力提倡。然而有些验证必须要和后台的数 据打交道,Javascript不能再胜任了。怎么办?
利用Ajax,不用再受这个限制。下面这个实例就是利用AJAX对用户唯一性,这个例子很简单,在文本框中输入用户名,点击验证按钮相应的 onclick触发验证方法。再创建一个XMLHTTP对象并从服务器请求一个ASP文档,并将响应信息作为字符串返回。
客户端的代码很简单。点击此处查处效果。
后台的代码也很简单。首先读取URL参数,并将该参数值作为查询条件在数据库中搜索相应记录,如果搜索到的记录集的记录数大于0,则返回该用 户名已经被注册的信息,反之返回该用户名尚未被使用的信息。代码如下:
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%> <% Response.CharSet="GB2312"; var sname=Request.QueryString("sname"); var conn = new ActiveXObject("ADODB.CONNECTION"); conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open(Server.MapPath("../../App_Data/Exam.mdb")) var rs = new ActiveXObject("ADODB.RECORDSET"); var sql = "Select Name FROM Student Where Name = '"+sname+"'"; rs.Open(sql,conn,1,1); if(rs.RecordCount > 0){ Response.Write("true"); }else{ Response.Write("false"); } rs.Close(); conn.Close(); %>
注意:
- 要做到浏览器兼容,如果不向服务器发送的数据,请在send方法中加上null参数。
- 如果向服务器请求的URL参数为多字节字符串,请将escape方法将其URL编码,服务器读取该字符串时会自动将其解码。
- 返回的响应信息为多字节字符串时,可能会出现乱码,请Response.CharSet设定其编码。