2011-03-22 5 views

Répondre

0

Je l'ai fait avec le widget autocomplete jQuery UI.

J'ai utilisé le widget pour tout le style, mais pour la source d'information, j'ai utilisé une page .asp qui exécutait une requête SQL basée sur les caractères qui avaient déjà été tapés dans la boîte. Donc, quand quelqu'un tapait 'ca' dans la boîte, à la sortie de la clé, la page .asp se chargeait d'une requête SQL de "Sélectionner le mot-clé où mot-clé comme 'ca%'" et ainsi de suite. Le widget de l'interface utilisateur jQuery met alors à jour la saisie semi-automatique en fonction des suggestions de la requête.

Vous pouvez le voir en action dans l'en-tête de http://www.constructionequipmentguide.com.

0

Voici quelques JS/ASP-Classic qui interroge une base de données pour des complétions possibles, en utilisant la table client dans the AdventureWorks2008LT sample database available from Microsoft.

<%@ language="Javascript" %> 

<script language="javascript" runat="server" src='json2.js'></script> 
<script language="javascript" runat="server" src='stringExtensions.js'></script> 
<script language="javascript" runat="server"> 

(function() { 

    queryDb = function(like) { 
     var conn, rs, result = [], C, rec; 
     conn = new ActiveXObject("ADODB.Connection"); 

     conn.ConnectionString = 
      'Provider=SQLOLEDB.1;' + 
      'Integrated Security=SSPI;' + 
      'Persist Security Info=False;' + 
      'Initial Catalog=AVWKS2008LT;' + 
      'Data Source=.\\SQLEXPRESS'; 

     conn.Open(); 
     rs = new ActiveXObject("ADODB.Recordset"); 
     var query = 
      'SELECT distinct Lastname as lname ' + 
      'FROM SalesLT.Customer '; 
     if (like !== null) { 
      query += "WHERE LastName like '" + like + "%' "; 
     } 

     rs.Open(query, conn, 1, 3); 
     while(!rs.EOF) { 
      // retrieve the 0th field 
      result.push(rs.Fields(0).Value.trim()); 
      rs.MoveNext(); 
     } 
     conn.Close(); 
     return result; 
    }; 

}()); 


try { 
    var t = Request.QueryString('token') + '', 
     token = (t == 'undefined') ? null : t, 
     r = queryDb(token); 
    Response.Write(JSON.stringify(r)); 
} 
catch(e) { 
    Response.Write(e.message); 
} 

</script>