HTML
Javascript
Flash Actionscript
PHP
mySQL
ASP
MS-SQL
Linux
Others
Ziwoo Board
Portfolio
About
PHP
작성  2006-07-05 21:45:07   추천: 96   조회: 5965
제목  동적인 다중셀렉트 샘플
이름(ID)  지우 (ziwoo)
동적인 다단계 셀렉트에 대하여 질문하는 사람이 많아서
샘플로 만들어 봤습니다.
단순한 에제입니다.

########## main.php ##########
<?
if($_GET["A"]){
    $Query ="select fieldB from 테이블 where fieldA='".$_GET["A"]."'";
    $cnn = mysql_query($Query) or exit(mysql_error());
    while($rst = mysql_fetch_assoc($cnn)) {
       $RecordsB = array_merge($RecordsB, array($rst));
    }
}

if($_GET["B"]){
    $Query ="select fieldC from 테이블 where fieldA='".$_GET["A"]."' and fieldB='".$_GET["B"]."'";
    $cnn = mysql_query($Query) or exit(mysql_error());
    while($rst = mysql_fetch_assoc($cnn)) {
       $RecordsC = array_merge($RecordsC, array($rst));
    }
}
?>

<script language="JavaScript" id="DynamicA"></script>
<script language="JavaScript" id="DynamicB"></script>
<script language="JavaScript">
<!--
function makeB(){
    var ValueA = document.getElementsByName('A')[0].value;
    DynamicA.src = "makeB.php?selectA="+ValueA;
}

function makeC(){
    var ValueA = document.getElementsByName('A')[0].value;
    var ValueB = document.getElementsByName('B')[0].value;
    DynamicB.src = "makeC.php?selectA="+ValueA+"&selectB="+ValueB;
}

function checkForm(){
    var ValueA = document.getElementsByName('A')[0].value;
    var ValueB = document.getElementsByName('B')[0].value;
    document.forms["F"].action = "main.php?A="+ValueA+"&B="+ValueB;
    document.forms["F"].submit();
}
//-->
</script>

<form name="F" method="post">
<select name="A" onChange="makeB()">
<option value="">--선택--</option>
<option value="현대" <?if($RecordsB[$i]["fieldA"]==$_GET["A"]) echo"selected";?>>현대</option>
<option value="대우" <?if($RecordsB[$i]["fieldA"]==$_GET["A"]) echo"selected";?>>대우</option>
<option value="삼성" <?if($RecordsB[$i]["fieldA"]==$_GET["A"]) echo"selected";?>>삼성</option>
</select>

<select name="B" onChange="makeC()">
<option value="">--선택--</option>
<?for($i=0;$i<count($RecordsB);$i++){?>
    <option value="<?=$RecordsB[$i]["fieldB"]?>" <?if($RecordsB[$i]["fieldB"]==$_GET["B"]) echo"selected";?>><?=$RecordsB[$i]["fieldB"]?></option>
<?}?>
</select>

<select name="C">
<option value="">--선택--</option>
<?for($i=0;$i<count($RecordsC);$i++){?>
    <option value="<?=$RecordsC[$i]["fieldC"]?>" <?if($RecordsC[$i]["fieldC"]==$_GET["C"]) echo"selected";?>><?=$RecordsC[$i]["fieldC"]?></option>
<?}?>
</select>

<input type="button" value="확인" onClick="checkForm()">
</form>
########## //main.php ##########

########## makeB.php ##########
<?
$Query ="select fieldB from 테이블 where fieldA='".$_GET["selectA"]."'";
$cnn = mysql_query($Query) or exit(mysql_error());
while($rst = mysql_fetch_assoc($cnn)) {
    $RecordsB = array_merge($RecordsB, array($rst));
}
?>

var ObjB = document.getElementsByName('B')[0].options;
for(var i=ObjB.length;i>=0;i--) ObjB[i] = null;
ObjB[0] = new Option('--선택--','');
<?for($i=0;$i<count($RecordsB);$i++){?>
    ObjB[ObjB.length] = new Option('<?=$RecordsB[$i]["fieldB"]?>','<?=$RecordsB[$i]["fieldB"]?>');
<?}?>
########## //makeB.php ##########

########## makeC.php ##########
<?
$Query ="select fieldC from 테이블 where fieldA='".$_GET["selectA"]."' and fieldB='".$_GET["selectB"]."'";
$cnn = mysql_query($Query) or exit(mysql_error());
while($rst = mysql_fetch_assoc($cnn)) {
    $RecordsC = array_merge($RecordsC, array($rst));
}
?>

var ObjC = document.getElementsByName('C')[0].options;
for(var i=ObjC.length;i>=0;i--) ObjC[i] = null;
ObjC[0] = new Option('--선택--','');
<?for($i=0;$i<count($RecordsC);$i++){?>
    ObjC[ObjC.length] = new Option('<?=$RecordsC[$i]["fieldC"]?>','<?=$RecordsC[$i]["fieldC"]?>');
<?}?>
########## //makeC.php ##########
번호 제목 이름 날짜 추천 조회
중요 PHP 업로드진행바(Pregress Bar) 구현[62]파일 지우 2006-04-29 146 39609
35 서브도메인간에 로그인 유지하기 지우 2019-10-03 4 2322
34 XML 기본 예제 지우 2011-11-09 48 2731
33 이메일 유효성 검사 정규식 지우 2011-06-03 60 3993
32 앞에 두글자만 빼고 *표로 숨기기. 지우 2011-04-20 62 7953
31 UTF-8인지 아닌지 구분하는 함수 지우 2010-03-30 67 4148
30 2차원 배열 정렬 함수 지우 2010-03-17 66 5212
29 php와 어플리케이션 간의 사용자 id 공유[1] 임홍열 2009-12-03 76 4193
28 서버 내 특정 디렉토리 삭제 처리 루틴 좀 여쭤볼게요..[3] 임홍열 2009-11-27 69 3741
27 프로그레스바에 관해서 질문 좀 드릴께요...[1] 임홍열 2009-11-20 68 3550
26 유효한 배열만 추출. 지우 2009-10-30 67 2515
25 전화번호에 자동 하이픈 넣기 지우 2008-11-11 68 9225
24 switch case 문 예제 지우 2008-05-06 84 4927
23 history.go(-1); 했을때 이전 입력데이터 유지 지우 2007-09-07 84 7758
22 경과만료된 페이지.. 메세지 안나오게.. 지우 2007-09-07 86 3262
21 트리구조(다단계)관련 문의![1] 서영찬 2007-01-04 90 3723
20 한글포함된 문자열 자르기 - 코드짧은것 지우 2006-08-26 102 5413
19 php 와 ftp 질문이요..[2] blintz.. 2006-08-14 99 2868
18 동영상 관련 게시판을 만드는데요..AvI파일만 실행이..[3] 이효준 2006-08-09 101 4326
17 동적인 다중셀렉트 샘플 지우 2006-07-05 96 5965
[1][2]
제목 내용 이름  
ziwooboard v1.0
Contact Phone Number
Bank Account number
ns1.ziwoo.net (119.199.174.18)
ns2.ziwoo.net (119.199.174.18)
Naver BLOG : http://blog.ziwoo.net
Family Homepage : http://home.ziwoo.net
Copyright ⓒ 2006 By Ziwoo.net All right reserved. Administrator.ziwoonet@naver.com