[ASP] Autocomplete cerca su 2 campi del db

Discussione in 'Classic ASP' iniziata da djjunior, 3 Maggio 2019.

  1. djjunior

    djjunior Utente Attivo

    Registrato:
    24 Luglio 2004
    Messaggi:
    85
    Mi Piace Ricevuti:
    1
    Punteggio:
    8
    Salve ho questo script,
    ora l'autocomplete lo fa sul CODE, vorrei , lasciando la visualizzazione come ora (CODE ° DESCRIZIONE)
    che faccia anche la ricerca su DESCRIZIONE, come posso fare?
    Grazie
    Codice:
    <script>
    function autocomplete(inp, arr) {
      var currentFocus;
    
      inp.addEventListener("input", function(e) {
         var a, b, i, val = this.value;
    
         closeAllLists();
         if (!val) { return false;}
         currentFocus = -1;
         a = document.createElement("DIV");
         a.setAttribute("id", this.id + "autocomplete-list");
         a.setAttribute("class", "autocomplete-items");
         this.parentNode.appendChild(a);
         for (i = 0; i < arr.length; i++) {
           if (arr[i].substr(0, val.length).toUpperCase() == val.toUpperCase()) {
             b = document.createElement("DIV");
    
             b.innerHTML = "<strong>" + arr[i].substr(0, val.length) + "</strong>";
             b.innerHTML += arr[i].substr(val.length);
             b.innerHTML += "<input type='hidden' value='" + arr[i] + "'>";
             b.addEventListener("click", function(e) {
                 inp.value = this.getElementsByTagName("input")[0].value;
                 closeAllLists();
             });
             a.appendChild(b);
           }
         }
      });
    
      inp.addEventListener("keydown", function(e) {
         var x = document.getElementById(this.id + "autocomplete-list");
         if (x) x = x.getElementsByTagName("div");
         if (e.keyCode == 40) {
    
           currentFocus++;
    
           addActive(x);
         } else if (e.keyCode == 38) {
    
           currentFocus--;
    
           addActive(x);
         } else if (e.keyCode == 13) {
    
           e.preventDefault();
           if (currentFocus > -1) {
    
             if (x) x[currentFocus].click();
           }
         }
      });
      function addActive(x) {
       if (!x) return false;
    
       removeActive(x);
       if (currentFocus >= x.length) currentFocus = 0;
       if (currentFocus < 0) currentFocus = (x.length - 1);
       x[currentFocus].classList.add("autocomplete-active");
      }
      function removeActive(x) {
       for (var i = 0; i < x.length; i++) {
         x[i].classList.remove("autocomplete-active");
       }
      }
      function closeAllLists(elmnt) {
       var x = document.getElementsByClassName("autocomplete-items");
       for (var i = 0; i < x.length; i++) {
         if (elmnt != x[i] && elmnt != inp) {
           x[i].parentNode.removeChild(x[i]);
         }
       }
      }
      document.addEventListener("click", function (e) {
         closeAllLists(e.target);
      });
    }
    
    var clifora = [
    <%
    
    Set objConn=Server.CreateObject("ADODB.Connection")
    objConn.Open "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=XXXXXXX;DATABASE=XXXXX;UID=XXXXXX;PASSWORD=XXXXX"
    Set objRs1 = Server.CreateObject("ADODB.Recordset")
    strSQL1="SELECT Code, Descrizione FROM Prodotti "
    objRs1.Open strSQL1, objConn
    While objRs1.EOF = False
    
    
    vBar = Replace(objrs1("Code"), """", "&quot;")
    if vBar <> "" then Code = Code&""""&vBar&" °  "&objrs1("Descrizione")&""","
    
    objRs1.Movenext
    Wend
    objRs1.close
    set objRs1 = Nothing
    
    response.Write(left(Code,len(Code)-1))
    
    %>
    
    ];
    
    autocomplete(document.getElementById("Art"), clifora);
    </script>
    
    Grazie
     
  2. djjunior

    djjunior Utente Attivo

    Registrato:
    24 Luglio 2004
    Messaggi:
    85
    Mi Piace Ricevuti:
    1
    Punteggio:
    8
    nessun aiuto? grazie
     
Sto caricando...

Condividi questa Pagina