In diesem Artikel wird ASP hauptsächlich eingeführt, um Google zu imitieren, um den Dropdown-Menü-Effekt zu erzielen.
Heute werde ich ASP verwenden, um das Dropdown-Menü Google Vorschläge zu imitieren und den Code direkt hochzuladen
1. Vordergrundcode:
- <%@Sprache = 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 {Farbe:#ff0000}
- .Mouseout
- {
- Schriftgröße: 12px;
- Hintergrund:#708090;
- Farbe: #fffafa;
- }
- .Mouseover
- {
- Schriftgröße: 12px;
- Hintergrund: #fffafa;
- Farbe:#000000;
- }
- ->
- </style>
- <scriptType = text/javaScriptLanguage = javaScript>
- varxMlhttp;
- varcompompletediv;
- Variinputfield;
- varnametable;
- varnametableBody;
- varflag = false;
- functionCreeRexMlhttprequest () {
- if (window.activeXObject) {
- xmlhttp = newActActXObject (microsoft.xmlhttp);
- }
- elseif (window.xmlhttprequest) {
- xmlhttp = newxMlHttprequest ();
- }
- }
- Funktionsetflag () {
- Flag = wahr;
- }
- functionDisSelect ()
- {
- if (flag == false)
- document.getElementById (popup) .style.display = none;
- }
- functionInitvars () {
- inputfield = document.getElementById (frmchangshang);
- nametable = document.getElementById (name_table);
- ferastiv = document.getElementById (Popup);
- nametableBody = document.getElementById (name_table_body);
- document.getElementById (Popup) .Style.Display = Block;
- }
- functionFindnames () {
- initvars ();
- if (inputfield.Value.length> 0)
- {
- createxmlhttprequest ();
- varurl = such.asp? names =+inputfield.Value;
- xmlhttp.open (get, url, true);
- xmlhttp.onReadyStatechange = callback;
- xmlhttp.send (null);
- }
- anders
- {
- Clearnames ();
- }
- }
- functionCallback () {
- if (xmlhttp.readystate == 4) {
- if (xmlhttp.status == 200)
- {
- versuchen
- {
- varname = xmlhttp.responsexml.getElementsByTagName (Name)
- [0] .Firstchild.data;
- }
- fangen (e)
- {
- document.getElementById (popup) .style.display = none;
- Clearnames ();
- }
- setNames (xmlhttp.Responsexml.getElementsByTagName (Inhalt));
- }
- elseif (xmlhttp.status == 204)
- {
- Clearnames ();
- }
- }
- }
- FunktionsetNames (the_names) {
- Clearnames ();
- varSize = the_names.length;
- setOffsets ();
- Varrow, Zelle, Spans;
- für (vari = 0; i <size; i ++) {
- //varnextnode=the_names · i]] .Firstchild.data;
- vare = the_names [i];
- // Holen Sie sich den Inhalt des untergeordneten Knotens und laden Sie ihn in ein Array neu.
- varnextNode = e.getElementsByTagName (Name) [0] .Firstchild.data;
- // TR, TD, Span -Elemente erstellen
- row = document.createelement (tr);
- cell = document.createelement (TD);
- //spans=document.createelement(span);
- // Zelleigenschaften festlegen
- cell.onmouseout = function () {this.className = 'mouseover'; Flag = false;};
- cell.onmouseover = function () {this.className = 'mausout'; Flag = true;};
- Cell.SetatTribute (BGColor,#fffafa);
- Cell.Setattribute (Grenze, 0);
- //cell.setattribute (Onmouseover, setflag ());
- cell.onclick = function () {populateName (this);};
- // NextNode zu TD hinzufügen
- vartxtName = document.CreateTextNode (NextNode);
- Cell.AppendChild (txtName);
- // Versteckte Daten in das Element laden
- Row.AppendChild (Zelle);
- NAMETABLEBODY.APPENDCHILD (ROW);
- }
- }
- FunktionsetOffsets () {
- varend = inputfield.Offsetwidth;
- varleft = calculateOffsetLeft (InputField);
- vartop = calculateOffsettop (Inputfield)+InputField.Offseteight;
- ferastiv.style.border = Black1pxSolid;
- ferastiv.style.left = links+px;
- ferastiv.style.top = top+px;
- nametable.style.width = 400px;
- }
- funktionscalculateOffsetLeft (field) {
- returncalculateOffset (Feld, OffsetLeft);
- }
- funktionscalculateOffsettop (field) {
- returncalculateOffset (field, offsettop);
- }
- funktionscalculateOffset (field, attr) {
- varoffset = 0;
- while (field) {
- offset+= field [attr];
- field = field.offsetParent;
- }
- returnOffset;
- }
- functionPopulateName (cell) {
- // Daten auf Webseite, Cell ----> TD-Objekt füllen
- inputfield.Value = cell.Firstchild.nodeDealue;
- Clearnames ();
- }
- // das Listenarray löschen
- FunktionClearNames () {
- varind = nametableBody.childnodes.length;
- für (vari = ind-1; i> = 0; i-) {
- nametableBody.removechild (nametableBody.childnodes [i]);
- }
- ferastiv.style.border = none;
- }
- </script>
- <kopf>
- <metahttp-äquiv = content-typecontent = text/html; charSet = gb2312/>
- <title> untitledDocument </title>
- </head>
- <body>
- <inputName = frmchangshangClass = InputTextID = frmchangshangStyle = Breite: 250px;
- onblur = disselect (); OnKeyUp = findNames (); size = 50maxLength = 100>
- <spanclass = style1> tipp: Geben Sie Schlüsselwörter ein und das Programm stimmt automatisch aus der Bibliothek überein
- Wenn der Datensatz nicht vorhanden ist, füllen Sie es selbst aus
- </span>
- <divStyle = Position: absolut; ober: 0; links: 0; id = popup>
- <tableId = name_tableBgColor =#fffaFaborder = 0cellspacing = 0
- cellpadding = 0>
- <tbodyid = name_table_body> </tbody>
- </table>
- </div>
- </body>
- </html>
2. Backend Search.speak Asynchrone Query -Daten Seite
Ändern Sie einfach die SQL -Anweisung und die Felder, die in das entsprechende Format Ihrer eigenen Datenbank angezeigt werden sollen.
- <!-#includevirtual = conn.asp->
- <%
- keyword = request.queryString (Namen)
- SQL = SELECTLGID, LGMCFROMGWHERELGMCLIKE '%& KEYWORD &%' OrderBylgiddesc
- setrs = server.createObject (adodb.recordset)
- Rs.opensql, Conn, 1,1
- Antwort.ContentType = text/xml
- response.write <xmlversion = 1.0encoding = gb2312?>
- response.write <Reaktion>
- dowhilenotrs.eof
- response.write <Content>
- Antwort.Write <Name> & RS (LGMC) & </name>
- 'response.write <UnterID> & rs (userID) & </userID>
- 'response.write <Startime> & rs (startime) & </startime>
- 'response.write <endtime> & rs (endzeit) & </endzeit>
- response.write </content>
- Rs.Movenext
- Schleife
- response.write </response>
- rs.close
- setrs = nichts
- %>
Das obige ist der Code für ASP, um den Google-Vorschlag für den Dropdown-Menü-Effekt zu imitieren.