음..아시는 분들도 계시리라 생각합니다만.. 제가 웹 프로그램을 하다 보니깐.. 이부분의 필요성은 언제라도 있더라구요..리프래쉬 없이 디비값을 가져오는 방법... 참고로 제가 만든 사이트에서 쇼핑존의 슬라이더 쇼핑~~ 하기 클릭해 보시면.. 카테고리 불러올때 아래 방식을 사용했습니다.(http://www.misozine.com)   머~~ 광고라고 하면 할말없고요..
개발자 분들 참고 하세요.. 마우스 오른쪽 클릭은 막아놨는데.. 그래도 웹좀 하신분들은 소스 어케 보는지 알겁니다..허허..
이 소스는 자바스크립트로 개체들을 찾아 가는게 핵심입니다..
아무쪼록 개발자 분들 힘내세요.. 우리나라 현실이 노가다 현실이라서리...쩌업~~

첫번째 프레임 페이지 입니다.
<frameset  rows="100%,*" cols="*" framespacing="0" frameborder="NO" border="0">
  <frame   src="SlideShow.asp?<%IF Trim(request.querystring) = "" Then Response.Write(request.Form) ELSE Response.Write(request.QueryString)%>"  name="mainFrame" >
  <frame  src="about:blank" scrolling="NO" noresize name="hiddenFrame" >
</frameset>

SlideShow.asp라는 파일에서 임의의 이벤트가 발생하면 이 파일의 특정 콤보에 값을 채우는 방법입니다
이 방식을 사용하면 새로고침의 한계를 뛰어 넘을 수 있습니다.


parent.document.frames['hiddenFrame'].document.location='top.asp?mode=CSSpec&ProductCode=' + document.frmSlide.ProductCode.value; 이런 방식으로 숨겨진 프레임 top.asp파일을 호출합니다.  이런식으로 사이트에 hidden 프레임을 만들어 두면 그렇게 멀게만 느껴졌던 디비호출을 마음대로 할 수 있습니다
=>Top.asp만 잘 정의 하면 대부분의 요청을 asp리프레쉬 없이 처리 할 수 있습니다.

// 여기는 Top.asp에 해당하는 내용입니다
mode에 따라서


<script language="javascript>


var TargetDoc= parent.document.frames["mainFrame"].document;
 var oOption;
IF Request("mode") = "CSSpec" THEN
      Set adocmd = Server.CreateObject("ADODB.Command")
      WITH adocmd
      .ActiveConnection = DbConn
      .CommandType = adCmdStoredProc
      .CommandText = "IS_CSEnterOrderCounts"
      .Parameters.Refresh
      .Parameters.Item("@ProductCode").Value=  Cint(Request("ProductCode"))
      Set RS = .Execute
    END WITH
%>
     for( key in   TargetDoc.frmSlide.CSSpec)
     {
      TargetDoc.frmSlide.CSSpec.remove(key);
     }
     <%    
     Do While Not RS.EOF
     %>
           oOption = TargetDoc.createElement('OPTION');     
      oOption.value="<%=Trim(RS("ColorCode")) %>;<%=Trim(RS("SizeCode")) %>";
      oOption.text ="<%=Trim(RS("Name") )%>-<%=Trim(RS("Size"))%>";
      TargetDoc.frmSlide.CSSpec.add(oOption);        
    <%
              RS.MoveNext
      Loop
      RS.close()
END IF%>


</script>

2009/05/26 13:40 2009/05/26 13:40

Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다