Artikel ini terutama memperkenalkan ASP untuk meniru gaya Google Sarankan untuk mencapai efek menu drop-down.
Hari ini, saya akan menggunakan ASP untuk meniru menu drop-down gaya Google Saran dan langsung mengunggah kode
1. Kode latar depan:
- <%@Bahasa = JavaScriptCodepage = 936%>
- <! Doctypehtmlpublic-// w3c // dtdxhtml1.0transitional // en
- http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd>
- <htmlxmlns = http: //www.w3.org/1999/xhtml>
- <styletype = text/css>
- <!-
- .style1 {color:#ff0000}
- .Mouseout
- {
- font-size: 12px;
- Latar belakang:#708090;
- Warna: #FFFAFA;
- }
- .Mouseover
- {
- font-size: 12px;
- Latar belakang: #FFFAFA;
- Warna:#000000;
- }
- ->
- </tyle>
- <ScriptType = Text/JavaScriptLanguage = JavaScript>
- varxmlhttp;
- varcompletediv;
- variinputfield;
- VARNAMETABLE;
- varnametablebody;
- varflag = false;
- functionCreatexmlHttpRequest () {
- if (window.activexObject) {
- xmlhttp = newActivexObject (microsoft.xmlhttp);
- }
- elseif (window.xmlHttpRequest) {
- xmlhttp = newxmlHttpRequest ();
- }
- }
- functionSetFlag () {
- bendera = true;
- }
- functionDisselect ()
- {
- if (flag == false)
- document.geteLementById (popup) .style.display = tidak ada;
- }
- functionInitvars () {
- inputfield = document.getElementById (frmchangshang);
- nametable = document.getElementById (name_table);
- finishiv = document.getElementById (popup);
- nametableBody = document.getElementById (name_table_body);
- document.geteLementById (popup) .style.display = block;
- }
- functionFindNames () {
- initvars ();
- if (inputfield.value.length> 0)
- {
- createxmlhttpRequest ();
- varUrl = search.asp? names =+inputField.Value;
- xmlhttp.open (get, url, true);
- xmlhttp.onreadystatechange = callback;
- xmlhttp.send (null);
- }
- kalau tidak
- {
- clearnames ();
- }
- }
- functionCallback () {
- if (xmlhttp.readystate == 4) {
- if (xmlhttp.status == 200)
- {
- mencoba
- {
- varname = xmlhttp.responsexml.geteLementsbyTagname (nama)
- [0] .firstchild.data;
- }
- Tangkap (E)
- {
- document.geteLementById (popup) .style.display = tidak ada;
- clearnames ();
- }
- setNames (xmlhttp.responsexml.geteLementsbyTagname (konten));
- }
- elseif (xmlhttp.status == 204)
- {
- clearnames ();
- }
- }
- }
- functionsetnames (the_names) {
- clearnames ();
- varsize = the_names.length;
- setoffsets ();
- Varrow, sel, rentang;
- untuk (vari = 0; i <size; i ++) {
- //varnextNode=the_names media Mirstchild.data;
- vare = the_names [i];
- // Dapatkan konten node anak dan muat ulang ke dalam array
- varnextNode = e.geteLementsByTagname (name) [0] .firstchild.data;
- // Buat tr, td, elemen span
- baris = document.createElement (tr);
- cell = document.createElement (TD);
- //spans=document.createelement(span);
- // Atur sifat sel
- cell.onmouseout = function () {this.className = 'mouseOver'; flag = false;};
- cell.onMouseOver = function () {this.className = 'mouseout'; flag = true;};
- cell.setAttribute (bgcolor,#fffafa);
- cell.setAttribute (border, 0);
- //cell.setAttribute (onmouseover, setFlag ());
- cell.onClick = function () {populatename (this);};
- // Tambahkan NextNode ke TD
- vartxtName = document.createTextNode (nextNode);
- Cell.AppendChild (TXTNAME);
- // Muat data tersembunyi untuk span elemen
- Row.AppendChild (sel);
- nametableBody.AppendChild (ROW);
- }
- }
- functionsetoffsets () {
- varend = inputfield.offsetWidth;
- varleft = CalculateOffsetLeft (InputField);
- vartop = calculateOffsettop (inputField)+inputfield.offsetHeight;
- flequv.style.border = black1pxsolid;
- flequv.style.left = kiri+px;
- flequv.style.top = Top+px;
- nametable.style.width = 400px;
- }
- functionCalculateOffsetLeft (bidang) {
- returnCalculateOffset (bidang, offsetleft);
- }
- functionCalculateOffsettop (bidang) {
- returnCalculateOffset (bidang, offsettop);
- }
- functionCalculateOffset (bidang, attr) {
- varoffset = 0;
- while (field) {
- offset+= bidang [attr];
- field = field.offsetParent;
- }
- kembali;
- }
- functionPopulateName (sel) {
- // Isi data ke halaman web, sel ----> objek TD
- inputfield.value = cell.firstchild.nodevalue;
- clearnames ();
- }
- // Bersihkan array daftar
- functionCleArnames () {
- varind = nametablebody.childnodes.length;
- untuk (vari = ind-1; i> = 0; i-) {
- nametablebody.removechild (nametablebody.childnodes [i]);
- }
- flequv.style.border = tidak ada;
- }
- </script>
- <head>
- <METAHTTP-EQUIV = Content-TypeContent = Teks/html; charset = GB2312/>
- <title> untitledDocument </iteme>
- </head>
- <body>
- <inputName = frmchangshangclass = inputTextId = frmchangshangstyle = lebar: 250px;
- OnBlur = Displect (); onceyup = findNames (); size = 50MaxLength = 100>
- <spanclass = style1> tip: masukkan kata kunci dan program akan secara otomatis cocok dengan Anda dari perpustakaan
- Jika catatan tidak ada, isi sendiri
- </span>
- <Divstyle = Posisi: Absolute; atas: 0; kiri: 0; id = popup>
- <tableId = name_tableBgColor =#fffafaBorder = 0cellspacing = 0
- CellPadding = 0>
- <tBodyId = name_table_body> </tbody>
- </boable>
- </div>
- </body>
- </html>
2. Backend Search.asp Halaman Data Kueri Asynchronous
Cukup ubah pernyataan SQL dan bidang yang akan ditampilkan ke format yang sesuai dari database Anda sendiri.
- <!-#includeVirtual = conn.asp->
- <%
- kata kunci = request.querystring (nama)
- sql = selectlgid, lgmcfromgwherelgmclike '%& kata kunci &%' orderbylgiddesc
- setRs = server.CreateObject (adodb.recordset)
- rs.opensql, Conn, 1,1
- Response.contentType = teks/xml
- response.write <? xmlversion = 1.0Encoding = GB2312?>
- Response.write <Respess>
- dowhilenotrs.eof
- Response.write <den konten>
- Response.write <name> & rs (lgmc) & </name>
- 'Response.Write <UserId> & rs (userId) & </userid>
- 'Response.Write <Tartime> & RS (Startime) & </Tegurime>
- 'Response.Write <endtime> & RS (EndTime) & </dtime>
- response.write </dontent>
- rs.movenext
- lingkaran
- Response.write </spesponse>
- rs.close
- setRs = tidak ada
- %>
Di atas adalah kode untuk ASP untuk meniru gaya Google Saran untuk mencapai efek menu drop-down.