다중 셀렉트 문의 드립니다. 정보
다중 셀렉트 문의 드립니다.본문
쓰기 폼에서 다중 셀렉트를 사용할려고 합니다.
셀렉트 되는 내용은 디비에서 가져올려고 합니다.
php 스쿨에서 거친마루님 소스를 참고해서 어떤분이 작성한 소스를 살펴보고 있는데.
도저히 모르겠습니다.. ㅠㅠ 한번 보시고 도움 좀 주세요..
테이블 구조하고 쿼리의 where 절 부분을 어떻게 처리해야 할지 모르겠습니다.
이것 저것으로 해봐도 잘 안되네요...
내용은 첫번째 셀렉트에서 내용을 선택하면 그 내용이 두번째 셀렉트에 표시되고.. 두번째 설렉트 내용을 선택하면 세번째 셀렉트에 내용이 이런식입니다.
======== index.php ==================
<?
function connect(){
$connect = mysql_connect(localhost, 디비계정, 패스워스);
mysql_select_db(nurim, $connect);
return $connect;
}
$connect = connect();
$query = "select * from 테이블이름 where 조건문";
$result = mysql_query($query, $connect);
$total = mysql_num_rows($result);
?>
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>다중 selectbox</title>
<script id="dynamic"></script> <!-- 이거 빼먹지 말것 -->
<script>
function loadData(sel,target) {
var trigger = sel.options[sel.selectedIndex].value; // 첫번째 selectbox의 선택된 텍스트
var form = sel.form.name;
dynamic.src = "loadData.php?form=" + form + "&trigger=" + trigger + "&target=" + target;
}
</script>
</head>
<body>
<form name="selectform">
<select name="s1" onChange="loadData(this,'s2')">
<option value="not">---선 택---</option>
<?
while($row = mysql_fetch_array($result)){?>
<option value="<?=$row[h_code]?>"><?=$row[p_company]?></option>
<?}?>
</select>
<select name="s2" onChange="loadData(this,'s3')">
<option>---선 택---</option>
</select>
<select name="s3" onChange="loadData(this,'s4')">
<option>---선 택---</option>
</select>
<select name="s4" onChange="loadData(this,'s5')">
<option>---선 택---</option>
</select>
<select name="s5">
<option>---선 택---</option>
</select>
</form>
</body>
</html>
========= loadData.php ================
<?
$trigger = $_GET['trigger'];
$target = $_GET['target'];
$form = $_GET['form'];
function connect(){
$connect = mysql_connect(localhost, 디비아이디, 패스워드);
mysql_select_db(nurim, $connect);
return $connect;
}
$connect = connect();
$query = "select * from 테이블이름 where 조건문";
$result = mysql_query($query, $connect);
$total = mysql_num_rows($result);
header("Content-Type: application/x-javascript");
echo "document.forms['$form'].elements['$target'].length =$total; \n";//$total은 추가할 옵션의 수
$i=0; //옵션 수의 초기화
if($trigger == "not"){ //1번 select 박스가 초기값(선택)일시 2번 select 초기화.
echo "document.forms['$form'].elements['s2'].length =1; \n";
echo "document.forms['$form'].elements['s2'].options[0].text = '---선 택---'; \n";
}
while($row = mysql_fetch_array($result)){
echo "document.forms['$form'].elements['$target'].options[$i].text = '$row[cate_name]'; \n";
echo "document.forms['$form'].elements['$target'].options[$i].value = '$row[cate_code]'; \n";
$i++; // 실행시 1씩 증가
if($target == "s2"){ //지정 타겟 이외의 select의 값을 초기화.
echo "document.forms['$form'].elements['s3'].length =1; \n";
echo "document.forms['$form'].elements['s3'].options[0].text = '---선 택---'; \n";
echo "document.forms['$form'].elements['s4'].length =1; \n";
echo "document.forms['$form'].elements['s4'].options[0].text = '---선 택---'; \n";
echo "document.forms['$form'].elements['s5'].length =1; \n";
echo "document.forms['$form'].elements['s5'].options[0].text = '---선 택---'; \n";
}elseif($target == "s3"){
echo "document.forms['$form'].elements['s4'].length =1; \n";
echo "document.forms['$form'].elements['s4'].options[0].text = '---선 택---'; \n";
echo "document.forms['$form'].elements['s5'].length =1; \n";
echo "document.forms['$form'].elements['s5'].options[0].text = '---선 택---'; \n";
}elseif($target == "s4"){
echo "document.forms['$form'].elements['s5'].length =1; \n";
echo "document.forms['$form'].elements['s5'].options[0].text = '---선 택---'; \n";
}
}
?>
셀렉트 되는 내용은 디비에서 가져올려고 합니다.
php 스쿨에서 거친마루님 소스를 참고해서 어떤분이 작성한 소스를 살펴보고 있는데.
도저히 모르겠습니다.. ㅠㅠ 한번 보시고 도움 좀 주세요..
테이블 구조하고 쿼리의 where 절 부분을 어떻게 처리해야 할지 모르겠습니다.
이것 저것으로 해봐도 잘 안되네요...
내용은 첫번째 셀렉트에서 내용을 선택하면 그 내용이 두번째 셀렉트에 표시되고.. 두번째 설렉트 내용을 선택하면 세번째 셀렉트에 내용이 이런식입니다.
======== index.php ==================
<?
function connect(){
$connect = mysql_connect(localhost, 디비계정, 패스워스);
mysql_select_db(nurim, $connect);
return $connect;
}
$connect = connect();
$query = "select * from 테이블이름 where 조건문";
$result = mysql_query($query, $connect);
$total = mysql_num_rows($result);
?>
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>다중 selectbox</title>
<script id="dynamic"></script> <!-- 이거 빼먹지 말것 -->
<script>
function loadData(sel,target) {
var trigger = sel.options[sel.selectedIndex].value; // 첫번째 selectbox의 선택된 텍스트
var form = sel.form.name;
dynamic.src = "loadData.php?form=" + form + "&trigger=" + trigger + "&target=" + target;
}
</script>
</head>
<body>
<form name="selectform">
<select name="s1" onChange="loadData(this,'s2')">
<option value="not">---선 택---</option>
<?
while($row = mysql_fetch_array($result)){?>
<option value="<?=$row[h_code]?>"><?=$row[p_company]?></option>
<?}?>
</select>
<select name="s2" onChange="loadData(this,'s3')">
<option>---선 택---</option>
</select>
<select name="s3" onChange="loadData(this,'s4')">
<option>---선 택---</option>
</select>
<select name="s4" onChange="loadData(this,'s5')">
<option>---선 택---</option>
</select>
<select name="s5">
<option>---선 택---</option>
</select>
</form>
</body>
</html>
========= loadData.php ================
<?
$trigger = $_GET['trigger'];
$target = $_GET['target'];
$form = $_GET['form'];
function connect(){
$connect = mysql_connect(localhost, 디비아이디, 패스워드);
mysql_select_db(nurim, $connect);
return $connect;
}
$connect = connect();
$query = "select * from 테이블이름 where 조건문";
$result = mysql_query($query, $connect);
$total = mysql_num_rows($result);
header("Content-Type: application/x-javascript");
echo "document.forms['$form'].elements['$target'].length =$total; \n";//$total은 추가할 옵션의 수
$i=0; //옵션 수의 초기화
if($trigger == "not"){ //1번 select 박스가 초기값(선택)일시 2번 select 초기화.
echo "document.forms['$form'].elements['s2'].length =1; \n";
echo "document.forms['$form'].elements['s2'].options[0].text = '---선 택---'; \n";
}
while($row = mysql_fetch_array($result)){
echo "document.forms['$form'].elements['$target'].options[$i].text = '$row[cate_name]'; \n";
echo "document.forms['$form'].elements['$target'].options[$i].value = '$row[cate_code]'; \n";
$i++; // 실행시 1씩 증가
if($target == "s2"){ //지정 타겟 이외의 select의 값을 초기화.
echo "document.forms['$form'].elements['s3'].length =1; \n";
echo "document.forms['$form'].elements['s3'].options[0].text = '---선 택---'; \n";
echo "document.forms['$form'].elements['s4'].length =1; \n";
echo "document.forms['$form'].elements['s4'].options[0].text = '---선 택---'; \n";
echo "document.forms['$form'].elements['s5'].length =1; \n";
echo "document.forms['$form'].elements['s5'].options[0].text = '---선 택---'; \n";
}elseif($target == "s3"){
echo "document.forms['$form'].elements['s4'].length =1; \n";
echo "document.forms['$form'].elements['s4'].options[0].text = '---선 택---'; \n";
echo "document.forms['$form'].elements['s5'].length =1; \n";
echo "document.forms['$form'].elements['s5'].options[0].text = '---선 택---'; \n";
}elseif($target == "s4"){
echo "document.forms['$form'].elements['s5'].length =1; \n";
echo "document.forms['$form'].elements['s5'].options[0].text = '---선 택---'; \n";
}
}
?>
댓글 전체