상세 컨텐츠

본문 제목

[ajax] 자동 완성 기능 핵심 코드 정리(지원이 생각)

AJAX

by happynuri 2007. 8. 20. 20:00

본문

// client : head 쪽에 javascript : chiwoniiAjaxMission

function Read(obj)
{

            if(event.keyCode==40) //다운키가 눌리면
              {
               
                    document.form1.sel1.focus();return; //--포커스를 select로
              }  
     

            objNode.text = encodeURI(obj.value);
            //텍스트박스에서 글자를 읽어 들어와서 encodiing

             xmlhttp.open ("Post","MissionServer2.aspx",false);
            //비동기, 화면 안바뀌고 하겠다
            xmlhttp.send(xmlpara); //비동기로 보내면

            var getstr = xmlhttp.responseXML; // 서버 처리 후 받아진다

              for(i=0; i< count.length; i++)
            {
           
            //--- 핵심 코드는 여기 뿐~!!! server에는 싹 비워!!!
            //--글자는 첫글자만 남기고 싹지워!!
            //-- 셀렉트에 옵션을 새로 추가하는 방법
           var option = new Option();
          
           option.text = getstr.getElementsByTagName("name")[i].childNodes[0].nodeValue;
           option.value = getstr.getElementsByTagName("seq")[i].childNodes[0].nodeValue;
              
                document.form1.sel1.add(option);
             //---    
           
            }
}
//--client : body쪽에는
<select id="sel1" multiple="multiple" style="display:none; width: 152px" onchange="sel1_onclick (sel1)">
           
            </select>    &nbsp;
          
            <div id="a">
          </div>

//--server 쪽에서는
 protected void Page_Load(object sender, EventArgs e)
    {
        //---입력 -- 원본이고
        XmlDocument xmldom = new XmlDocument();
        xmldom.Load(Request.InputStream);//텍박의 값을 받아서
        string name = xmldom.SelectNodes("PARAMETER").Item(0).SelectSingleNode("DATA").InnerText;//입력
        //파라미터 노드여러개중 첫번째꺼의 싱글노드 data의 텍스트를
        //디폴트에서 받은 파라미터
 


        //--- 출력
        XmlDocument new_xmldom = sqlfunction(name); //쿼리 결과를 얻어서 돔(XML)로 만든다.
        //-- 쿼리를 사용해서 새로운 것을 만들지
        Response.ContentType = "text/xml;charset=euc-kr"; //반드시 해야함. //강제적으로 첫줄에 넣고
        Response.Write(new_xmldom.OuterXml); //두번째 부터 넣는거지.

    }


protected XmlDocument sqlfunction(string itname)
    {

        string sql = "SELECT seq, name, it from BBS where name like @name";
             
        SqlConnection con = new SqlConnection("Data Source=192.168.1.15;Initial Catalog=BoardProject;User ID=sa;Password=1234");
        SqlCommand com = new SqlCommand(sql, con);

                itname = HttpUtility.UrlDecode(itname);
       com.Parameters.AddWithValue("@name", "%"+itname+"%");

        con.Open();

        SqlDataReader dr = com.ExecuteReader();


        //-- START
        XmlDocument xmldom = new XmlDocument();

        XmlElement root = xmldom.CreateElement("root");
                                        :
                                        :
                                        :
                                        :
 //결국 dom을 리턴한다.
}

관련글 더보기

댓글 영역