<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script>
function suckerfish(type, tag, parentId)
{
 if (window.attachEvent)
 {
  window.attachEvent("onload", function()
  {
   var sfEls = (parentId==null)?
document.getElementsByTagName(tag):document.getElementById(parentId).getElementsByTagName(tag);
   type(sfEls);
  });
 }
}
sfFocus = function(sfEls)
{
 for (var i=0; i<sfEls.length; i++)
 {
  sfEls[i].onfocus=function()
  {
   this.className+=" sffocus";
   if( this.value == this.defaultValue ) { this.value = ""; }
  }
  sfEls[i].onblur=function()
  {
   this.className=this.className.replace(new RegExp(" sffocus\\b"), "");
   if( this.value == "" ) { this.value = this.defaultValue; }
     }
 }
}
suckerfish(sfFocus, "INPUT");
suckerfish(sfFocus, "TEXTAREA"); 
suckerfish(sfFocus, "SELECT"); 
var intIndex=0;arrList = new Array();
arrList[intIndex++] = " 1sdfsdf.com";
arrList[intIndex++] = "业务员";
arrList[intIndex++] = "业务精英";
function smanPromptList(arrList,objInputId){
this.style = "background:#E8F7EB;border: 1px solid #CCCCCC;font-size:14px;cursor: default;"
if (arrList.constructor!=Array){alert('smanPromptList初始化失败:第一个参数非数组!');return ;}
window.onload =function() {
              arrList.sort(function(a,b){
                  if(a.length>b.length)return 1;
                else if(a.length==b.length)return a.localeCompare(b);
                else return -1;
            })
var objouter=document.getElementById("__smanDisp") //显示的DIV对象
var objInput = document.getElementById(objInputId); //文本框对象
var selectedIndex=-1;
var intTmp; //循环用的:)
if (objInput==null) {alert('smanPromptList初始化失败:没有找到"'+objInputId+'"文本框');return ;}
//文本框失去焦点
objInput.onblur=function(){
objouter.style.display='none';
}
window.onfocus=function(){
objouter.style.display='none';
}
//文本框按键抬起
objInput.onkeyup=checkKeyCode;
//文本框得到焦点
objInput.onfocus=checkAndShow;
function checkKeyCode(){
var ie = (document.all)? true:false
if (ie){
var keyCode=event.keyCode
if (keyCode==40||keyCode==38){ //下上
  var isUp=false
  if(keyCode==40) isUp=true ;
  chageSelection(isUp)
}else if (keyCode==13){//回车
  outSelection(selectedIndex);
}else{
  checkAndShow()
}
}else{
checkAndShow()
}
divPosition()
}
function checkAndShow(){
  var strInput = objInput.value
  if (strInput!=""){
  divPosition();
  selectedIndex=-1;
  objouter.innerHTML ="";
  for (intTmp=0;intTmp<arrList.length;intTmp++){
  for(i=0;i<arrList[intTmp].length;i++){ 
if (arrList[intTmp].substr(i, strInput.length).toUpperCase()==strInput.toUpperCase()){
    addOption(arrList[intTmp],strInput);
  }
}
  }
  objouter.style.display='';
  }else{
  objouter.style.display='none';
}
function addOption(value,keyw){
var v=value.replace(keyw,"<b><font color=red>"+keyw+"</font></b>");
  objouter.innerHTML +="<div onmouseover=\"this.className='sman_selectedStyle'\" onmouseout=\"this.className=''\" onmousedown=\"document.getElementById('"+objInputId+"').value='" + value + "';window.focus();\">" + v + "</div>" 
}
}
function chageSelection(isUp){
if (objouter.style.display=='none'){
objouter.style.display='';
}else{
if (isUp)
  selectedIndex++
else
  selectedIndex--
}
var maxIndex = objouter.children.length-1;
if (selectedIndex<0){selectedIndex=0}
if (selectedIndex>maxIndex) {selectedIndex=maxIndex}
for (intTmp=0;intTmp<=maxIndex;intTmp++){
if (intTmp==selectedIndex){
  objouter.children[intTmp].className="sman_selectedStyle";
}else{
  objouter.children[intTmp].className="";
}
}
}
function outSelection(Index){
if(!objouter.children[Index])return;
objInput.value = objouter.children[Index].innerText;
objouter.style.display='none';
}
function divPosition(){
objouter.style.top =getAbsoluteHeight(objInput)+getAbsoluteTop(objInput);
objouter.style.left =getAbsoluteLeft(objInput); 
objouter.style.width=getAbsoluteWidth(objInput)
}
}
document.write("<div id='__smanDisp' style='position:absolute;display:none;" + this.style + "' onbulr> </div>");
document.write("<style>.sman_selectedStyle{background-Color:#102681;color:#FFFFFF}</style>");
function getAbsoluteHeight(ob){
return ob.offsetHeight
}
function getAbsoluteWidth(ob){
return ob.offsetWidth
}
function getAbsoluteLeft(ob){
var s_el=0;el=ob;while(el){s_el=s_el+el.offsetLeft;el=el.offsetParent;}; return s_el
}
function getAbsoluteTop(ob){
var s_el=0;el=ob;while(el){s_el=s_el+el.offsetTop ;el=el.offsetParent;}; return s_el
}
}
smanPromptList(arrList,"inputer")
</script>
<style>
.inp{ border:1px solid #999; padding:0px 0 0 2px;height:23px; line-height:23px; font-size:14px; color:#666}
.inp.sffocus { background:#fff; border:1px solid #f90; color:blue ; }
</style>
  <input name="textinput"  tabindex="1"  type="text" size="45" class="inp"  value="业务员,区域经理,销售经理"  id="inputer" />
请问有没有什么办法可将上段JS代码中的:arrList = new Array()变更为数据库中的某一字段值

解决方案 »

  1.   

    arrList[intIndex++] = " 1sdfsdf.com";
    arrList[intIndex++] = "业务员";
    arrList[intIndex++] = "业务精英";问一下,是不是从数据库中获取以上数组的值
      

  2.   

    谢谢回复和关注!
    是这样的,现在这个arrList = new Array()里面的值是我手动输入,现在想从利用sql从数据库中直接得到一个字段集,然后将这个字段集直接赋于这个数组!
      

  3.   

    var arrList=<%= 通过sql求得的List%>
    这样行不?没试过……抱歉
      

  4.   

    我也是这样想的
    可是就是不行
    不知那里不对<% 
    Response.ContentType = "text/html"
    Response.Addheader "Content-Type","text/html; charset=gb2312"
    set conn = Server.CreateObject("Adodb.Connection") 
    conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\AspWeb\wwwroot\qis\data\qis.mdb"
    conn.OpenSql_str="SELECT DISTINCT content  FROM srm_list where content like '%"& request.QueryString("q") &"%' "
    set rs=server.createobject("adodb.recordset")
    rs.open Sql_str,conn,1,3do while not rs.eof 
    datas =  datas & rs("content") 
    rs.MoveNext
    loop
    response.Write (datas)
    %>
    <script>
    function suckerfish(type, tag, parentId)
    {
     if (window.attachEvent)
     {
      window.attachEvent("onload", function()
      {
       var sfEls = (parentId==null)?
    document.getElementsByTagName(tag):document.getElementById(parentId).getElementsByTagName(tag);
       type(sfEls);
      });
     }
    }
    sfFocus = function(sfEls)
    {
     for (var i=0; i<sfEls.length; i++)
     {
      sfEls[i].onfocus=function()
      {
       this.className+=" sffocus";
       if( this.value == this.defaultValue ) { this.value = ""; }
      }
      sfEls[i].onblur=function()
      {
       this.className=this.className.replace(new RegExp(" sffocus\\b"), "");
       if( this.value == "" ) { this.value = this.defaultValue; }
         }
     }
    }
    suckerfish(sfFocus, "INPUT");
    suckerfish(sfFocus, "TEXTAREA"); 
    suckerfish(sfFocus, "SELECT"); 
    var arrList = <%=datas%>function smanPromptList(arrList,objInputId){
    this.style = "background:#E8F7EB;border: 1px solid #CCCCCC;font-size:14px;cursor: default;"
    if (arrList.constructor!=Array){alert('smanPromptList初始化失败:第一个参数非数组!');return ;}
    window.onload =function() {
                  arrList.sort(function(a,b){
                      if(a.length>b.length)return 1;
                    else if(a.length==b.length)return a.localeCompare(b);
                    else return -1;
                })
    var objouter=document.getElementById("__smanDisp") //显示的DIV对象
    var objInput = document.getElementById(objInputId); //文本框对象
    var selectedIndex=-1;
    var intTmp; //循环用的:)
    if (objInput==null) {alert('smanPromptList初始化失败:没有找到"'+objInputId+'"文本框');return ;}
    //文本框失去焦点
    objInput.onblur=function(){
    objouter.style.display='none';
    }
    window.onfocus=function(){
    objouter.style.display='none';
    }
    //文本框按键抬起
    objInput.onkeyup=checkKeyCode;
    //文本框得到焦点
    objInput.onfocus=checkAndShow;
    function checkKeyCode(){
    var ie = (document.all)? true:false
    if (ie){
    var keyCode=event.keyCode
    if (keyCode==40||keyCode==38){ //下上
      var isUp=false
      if(keyCode==40) isUp=true ;
      chageSelection(isUp)
    }else if (keyCode==13){//回车
      outSelection(selectedIndex);
    }else{
      checkAndShow()
    }
    }else{
    checkAndShow()
    }
    divPosition()
    }
    function checkAndShow(){
      var strInput = objInput.value
      if (strInput!=""){
      divPosition();
      selectedIndex=-1;
      objouter.innerHTML ="";
      for (intTmp=0;intTmp<arrList.length;intTmp++){
      for(i=0;i<arrList[intTmp].length;i++){ 
    if (arrList[intTmp].substr(i, strInput.length).toUpperCase()==strInput.toUpperCase()){
        addOption(arrList[intTmp],strInput);
      }
    }
      }
      objouter.style.display='';
      }else{
      objouter.style.display='none';
    }
    function addOption(value,keyw){
    var v=value.replace(keyw,"<b><font color=red>"+keyw+"</font></b>");
      objouter.innerHTML +="<div onmouseover=\"this.className='sman_selectedStyle'\" onmouseout=\"this.className=''\" onmousedown=\"document.getElementById('"+objInputId+"').value='" + value + "';window.focus();\">" + v + "</div>" 
    }
    }
    function chageSelection(isUp){
    if (objouter.style.display=='none'){
    objouter.style.display='';
    }else{
    if (isUp)
      selectedIndex++
    else
      selectedIndex--
    }
    var maxIndex = objouter.children.length-1;
    if (selectedIndex<0){selectedIndex=0}
    if (selectedIndex>maxIndex) {selectedIndex=maxIndex}
    for (intTmp=0;intTmp<=maxIndex;intTmp++){
    if (intTmp==selectedIndex){
      objouter.children[intTmp].className="sman_selectedStyle";
    }else{
      objouter.children[intTmp].className="";
    }
    }
    }
    function outSelection(Index){
    if(!objouter.children[Index])return;
    objInput.value = objouter.children[Index].innerText;
    objouter.style.display='none';
    }
    function divPosition(){
    objouter.style.top =getAbsoluteHeight(objInput)+getAbsoluteTop(objInput);
    objouter.style.left =getAbsoluteLeft(objInput); 
    objouter.style.width=getAbsoluteWidth(objInput)
    }
    }
    document.write("<div id='__smanDisp' style='position:absolute;display:none;" + this.style + "' onbulr> </div>");
    document.write("<style>.sman_selectedStyle{background-Color:#102681;color:#FFFFFF}</style>");
    function getAbsoluteHeight(ob){
    return ob.offsetHeight
    }
    function getAbsoluteWidth(ob){
    return ob.offsetWidth
    }
    function getAbsoluteLeft(ob){
    var s_el=0;el=ob;while(el){s_el=s_el+el.offsetLeft;el=el.offsetParent;}; return s_el
    }
    function getAbsoluteTop(ob){
    var s_el=0;el=ob;while(el){s_el=s_el+el.offsetTop ;el=el.offsetParent;}; return s_el
    }
    }
    smanPromptList(arrList,"inputer")
    </script>
    <style>
    .inp{ border:1px solid #999; padding:0px 0 0 2px;height:23px; line-height:23px; font-size:14px; color:#666}
    .inp.sffocus { background:#fff; border:1px solid #f90; color:blue ; }
    </style>
      <input name="textinput"  tabindex="1"  type="text" size="45" class="inp"  value="业务员,区域经理,销售经理"  id="inputer" />
      

  5.   

    datas = datas & rs("content")  -->datas = datas &"|"& rs("content")  
    var arrList = <%=datas%>       -->var arrList = "<%=datas%>".split(/\|/);
      

  6.   


    <%  
    Response.ContentType = "text/html"
    Response.Addheader "Content-Type","text/html; charset=gb2312"
    set conn = Server.CreateObject("Adodb.Connection")  
    conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\AspWeb\wwwroot\qis\data\qis.mdb"
    conn.OpenSql_str="SELECT DISTINCT content FROM srm_list where content like '%"& request.QueryString("q") &"%' "
    set rs=server.createobject("adodb.recordset")
    rs.open Sql_str,conn,1,3do while not rs.eof  
    datas = datas &"|"& rs("content")   
    rs.MoveNext
    loop
    response.Write (datas)
    %>
    <script>function suckerfish(type, tag, parentId)
    {
     if (window.attachEvent)
     {
      window.attachEvent("onload", function()
      {
      var sfEls = (parentId==null)?
    document.getElementsByTagName(tag):document.getElementById(parentId).getElementsByTagName(tag);
      type(sfEls);
      });
     }
    }
    sfFocus = function(sfEls)
    {
     for (var i=0; i<sfEls.length; i++)
     {
      sfEls[i].onfocus=function()
      {
      this.className+=" sffocus";
      if( this.value == this.defaultValue ) { this.value = ""; }
      }
      sfEls[i].onblur=function()
      {
      this.className=this.className.replace(new RegExp(" sffocus\\b"), "");
      if( this.value == "" ) { this.value = this.defaultValue; }
      }
     }
    }
    suckerfish(sfFocus, "INPUT");
    suckerfish(sfFocus, "TEXTAREA");  
    suckerfish(sfFocus, "SELECT");  window.onload = function(){
    var arrList = "<%=datas%>".split(/\|/);
    }function smanPromptList(arrList,objInputId){
    this.style = "background:#E8F7EB;border: 1px solid #CCCCCC;font-size:14px;cursor: default;"
    if (arrList.constructor!=Array){alert('smanPromptList初始化失败:第一个参数非数组!');return ;}
    window.onload =function() {
      arrList.sort(function(a,b){
      if(a.length>b.length)return 1;
      else if(a.length==b.length)return a.localeCompare(b);
      else return -1;
      })
    var objouter=document.getElementById("__smanDisp") //显示的DIV对象
    var objInput = document.getElementById(objInputId); //文本框对象
    var selectedIndex=-1;
    var intTmp; //循环用的:)
    if (objInput==null) {alert('smanPromptList初始化失败:没有找到"'+objInputId+'"文本框');return ;}
    //文本框失去焦点
    objInput.onblur=function(){
    objouter.style.display='none';
    }
    window.onfocus=function(){
    objouter.style.display='none';
    }
    //文本框按键抬起
    objInput.onkeyup=checkKeyCode;
    //文本框得到焦点
    objInput.onfocus=checkAndShow;
    function checkKeyCode(){
    var ie = (document.all)? true:false
    if (ie){
    var keyCode=event.keyCode
    if (keyCode==40||keyCode==38){ //下上
      var isUp=false
      if(keyCode==40) isUp=true ;
      chageSelection(isUp)
    }else if (keyCode==13){//回车
      outSelection(selectedIndex);
    }else{
      checkAndShow()
    }
    }else{
    checkAndShow()
    }
    divPosition()
    }
    function checkAndShow(){
      var strInput = objInput.value
      if (strInput!=""){
      divPosition();
      selectedIndex=-1;
      objouter.innerHTML ="";
      for (intTmp=0;intTmp<arrList.length;intTmp++){
      for(i=0;i<arrList[intTmp].length;i++){  
    if (arrList[intTmp].substr(i, strInput.length).toUpperCase()==strInput.toUpperCase()){
      addOption(arrList[intTmp],strInput);
      }
    }
      }
      objouter.style.display='';
      }else{
      objouter.style.display='none';
    }
    function addOption(value,keyw){
    var v=value.replace(keyw,"<b><font color=red>"+keyw+"</font></b>");
      objouter.innerHTML +="<div onmouseover=\"this.className='sman_selectedStyle'\" onmouseout=\"this.className=''\" onmousedown=\"document.getElementById('"+objInputId+"').value='" + value + "';window.focus();\">" + v + "</div>"  
    }
    }
    function chageSelection(isUp){
    if (objouter.style.display=='none'){
    objouter.style.display='';
    }else{
    if (isUp)
      selectedIndex++
    else
      selectedIndex--
    }
    var maxIndex = objouter.children.length-1;
    if (selectedIndex<0){selectedIndex=0}
    if (selectedIndex>maxIndex) {selectedIndex=maxIndex}
    for (intTmp=0;intTmp<=maxIndex;intTmp++){
    if (intTmp==selectedIndex){
      objouter.children[intTmp].className="sman_selectedStyle";
    }else{
      objouter.children[intTmp].className="";
    }
    }
    }
    function outSelection(Index){
    if(!objouter.children[Index])return;
    objInput.value = objouter.children[Index].innerText;
    objouter.style.display='none';
    }
    function divPosition(){
    objouter.style.top =getAbsoluteHeight(objInput)+getAbsoluteTop(objInput);
    objouter.style.left =getAbsoluteLeft(objInput);  
    objouter.style.width=getAbsoluteWidth(objInput)
    }
    }
    document.write("<div id='__smanDisp' style='position:absolute;display:none;" + this.style + "' onbulr> </div>");
    document.write("<style>.sman_selectedStyle{background-Color:#102681;color:#FFFFFF}</style>");
    function getAbsoluteHeight(ob){
    return ob.offsetHeight
    }
    function getAbsoluteWidth(ob){
    return ob.offsetWidth
    }
    function getAbsoluteLeft(ob){
    var s_el=0;el=ob;while(el){s_el=s_el+el.offsetLeft;el=el.offsetParent;}; return s_el
    }
    function getAbsoluteTop(ob){
    var s_el=0;el=ob;while(el){s_el=s_el+el.offsetTop ;el=el.offsetParent;}; return s_el
    }
    }
    smanPromptList(arrList,"inputer")
    </script>
    <style>
    .inp{ border:1px solid #999; padding:0px 0 0 2px;height:23px; line-height:23px; font-size:14px; color:#666}
    .inp.sffocus { background:#fff; border:1px solid #f90; color:blue ; }
    </style>
      <input name="textinput" tabindex="1" type="text" size="45" class="inp" value="业务员,区域经理,销售经理" id="inputer" />
    谢谢还是不行啊,都不知道问题在那,那位兄弟能在自己的机子调试一下
      

  7.   

    用alter看看<%=datas%>是不是一个字符串
      

  8.   

    ASP?好久不用,忘差不多了,你试试用response输出一段js脚本response.Write ("<script language='javascript'> var mydata =" + datas + "; alert(mydata);</script>)照这个思路看看行不行
      

  9.   

    服务器端给客户端赋值一定要用服务器端的response.write
    你应该是这样的arrList提前var定义好然后服务器端 response.write "arrList ="&datas
    试试
      

  10.   

    这个response.write并不会在页面上打印出来