if ArrSearch(Array2, Rs("gugun"), count2) <> -1 Then
count3 = 0
ReDim Array3(count3)
count2=count2+1
ReDim Preserve Array2(count2)
Array2(count2)= Rs("gugun")
if count3 <> 0 Then
%>
insert into select_code(code1, code2, code3, majorclass, middleclass, subclass) values (<%=count1%>, <%=count2%>, <%=count3%>, '<%=Rs("sido")%>', '<%=Rs("gugun")%>', '<%=ArrayDong(0)%>')<br><br>
<%
else
Response.write "<br><br>"
end if
End if
if ArrSearch(Array3, ArrayDong(0), count3) <> -1 Then
count3=count3+1
ReDim Preserve Array3(count3)
Array3(count3)= ArrayDong(0)
if count3 <> 0 Then
%>
insert into select_code(code1, code2, code3, majorclass, middleclass, subclass) values (<%=count1%>, <%=count2%>, <%=count3%>, '<%=Rs("sido")%>', '<%=Rs("gugun")%>', '<%=ArrayDong(0)%>')<br>
<%
End if
End if
Rs.MoveNext
Loop
end if
%>
</BODY>
</HTML>
위의 페이지를 띄워보면 당연하게도
insert into select_code(code1, code2, code3, majorclass, middleclass, subclass) values (1, 1, 1, '서울', '강남구', '개포1동')
insert into select_code(code1, code2, code3, majorclass, middleclass, subclass) values (1, 1, 2, '서울', '강남구', '개포2동')
...
...
으로 대략 300여개? 정도의 결과로 나온다..
지역코드가 서울 강남구 라면 (1,1,?)로 ?값이 읍면동 정보인데 (1,1,0) 지역코드라면 서울시 강남구 모든 동
정보나 혹여나 select에서 아무것도 선택하지 않았을때의 값이 0 으로 설정하기 위해서 지역코드에는 0 값이
들어있지 않도록 만들었다.
이것을 db에 고대로 넣으면 원하는 시도, 구군, 읍면동 정보가 들어있는 db를 만들수 있다.
그후 가장 중요한 다중셀렉트?? 결과가 연동되게 표시되는 셀렉트?? 를 만들 차례다.
이는 정말 감사하게도 인터넷검색을 하니 친철하게 어떤분이 만들어 놓으신걸 조금 수정했다.
원래 select가 2개로 연동되는것 이였는데 내가 사용할 것은 3개 이므로 3개로 늘리는 작업 및
기존코드: var bc2 = eval('document.RegRequest.biz_code2');
는 비표준 이라고 그러던데 역시나 오류가 발생하여
수정코드: var bc1 = document.getElementById("biz_code1");
로 간단하게 바꿔주고
결과값을 테스트용도로 볼 수 있도록 간단한 폼을 붙여놨다.
우리가 db에 넣었던
(code1, code2 code3, majorclass, middleclass, subclass) 는
(select1번의 value, select3번의 value, select3번의 value, 시도, 구군, 읍면동) 의 정보 이다.
다른 다중셀렉트를 만들때 값만 변경시키면 된다.
TEST.ASP 내용
<!-- #include virtual = "/library/ADODB.asp" -->
<html>
<head>
<title>test</title>
</head>
<Script language="javascript">
<!--
arrcode1 = new Array;
arrcode2 = new Array;
arrcode3 = new Array;
var bc1 = document.getElementById("biz_code1");
var bc2 = document.getElementById("biz_code2");
var bc3 = document.getElementById("biz_code3");
for(var i=bc1.length-1; i > -1; i--)
{
bc1.options[i].value = null;
bc1.options[i] = null;
}
bc1.options[0]= new Option('== 선택 ==',0);
bc1.options[0].value= '';
for(var i=bc2.length-1; i > -1; i--)
{
bc2.options[i].value = null;
bc2.options[i] = null;
}
bc2.options[0]= new Option('== 선택 ==',0);
bc2.options[0].value= '';
for(var i=bc3.length-1; i > -1; i--)
{
bc3.options[i].value = null;
bc3.options[i] = null;
}
bc3.options[0]= new Option('== 선택 ==',0);
bc3.options[0].value= '';
var k = 1;
for(var i=0; i < arrcode1.length; i++)
{
for(var j=0; j < k; j++)
{
if(bc1.options[j].value==arrcode1[i]) {
var chk_exist = true;
break;
}
else {
var chk_exist = false;
}
}
if(chk_exist) {
}
else {
bc1.options[k] = new Option(arrcode4[i]);
bc1.options[k].value = arrcode1[i];
k = k +1;
}
}
}
function setcode2() {
var bc1 = document.getElementById("biz_code1");
var bc2 = document.getElementById("biz_code2");
var bc3 = document.getElementById("biz_code3");
//document.getElementById("code1").value = document.getElementById("biz_code1").value;
//document.getElementById("code1").value =
//var compc = document.RegRequest.biz_code1.value;
var compc = document.getElementById("biz_code1").value;
for(var i=bc2.length-1; i > -1; i--)
{
bc2.options[i].value = null;
bc2.options[i] = null;
}
bc2.options[0]= new Option('== 선택 ==',0);
bc2.options[0].value= '';
var k = 1;
for(var i=0; i < arrcode1.length; i++)
{
if(arrcode1[i]==compc) {
for(var j=0; j < k; j++)
{
if(bc2.options[j].value==arrcode2[i]) {
var chk_exist = true;
break;
}
else {
var chk_exist = false;
}
}
if(chk_exist) {
}
else {
bc2.options[k] = new Option(arrcode5[i]);
bc2.options[k].value = arrcode2[i];
k = k +1;
}
}
}
}
function setcode3() {
var bc1 = document.getElementById("biz_code1");
var bc2 = document.getElementById("biz_code2");
var bc3 = document.getElementById("biz_code3");
//document.getElementById("code1").value = document.getElementById("biz_code1").value;
//document.getElementById("code1").value =
//var compc = document.RegRequest.biz_code1.value;
var compc1 = document.getElementById("biz_code1").value;
var compc2 = document.getElementById("biz_code2").value;
for(var i=bc3.length-1; i > -1; i--)
{
bc3.options[i].value = null;
bc3.options[i] = null;
}
bc3.options[0]= new Option('== 선택 ==',0);
bc3.options[0].value= '';
var k = 1;
for(var i=0; i < arrcode2.length; i++)
{
if(arrcode1[i]==compc1 && arrcode2[i]==compc2) {
for(var j=0; j < k; j++)
{
if(bc3.options[j].value==arrcode3[i]) {
var chk_exist = true;
break;
}
else {
var chk_exist = false;
}
}
if(chk_exist) {
}
else {
bc3.options[k] = new Option(arrcode6[i]);
bc3.options[k].value = arrcode3[i];
k = k +1;
}
}
}
}
else
i = 0
Rs2.MoveFirst
Do Until RS2.Eof
%>
<Script language="javascript">
<!--
SetArray('<%=i%>','<%=Rs2(0)%>','<%=Rs2(1)%>','<%=Rs2(2)%>','<%=Rs2(3)%>','<%=Rs2(4)%>','<%=Rs2(5)%>');
//-->
</script>
<%
Rs2.MoveNext
i = i + 1
Loop
end if
<SCRIPT LANGUAGE="JavaScript" type="text/javascript">
<!--
//JS Test
var Request=function(){
this.getParameter=function(name){
var trnval = '';
var nowAddress=unescape(location.href);
var parameters=(nowAddress.slice(nowAddress.indexOf('?')+1, nowAddress.length)).split('&');
for(var i = 0; i<parameters.length; i++){
var varName=parameters[i].split('=')[0];
if(varName.toUpperCase() == name.toUpperCase()){
rtnval=parameters[i].split('=')[1];
break;
}
}
document.write(rtnval);
}
}