급합니다. 셀렉트박스에서 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

급합니다. 셀렉트박스에서 정보

급합니다. 셀렉트박스에서

본문

어제 질문드렸는데..
급해서 다시 질문합니다. 죄송..

셀렉트박스에서
대분류 - 중분류 - 소분류를 선택하면 submit이 돼 버리요.
셀렉트박스를 선택할때마다 쿼리를날려 결과값이 출력되다보니 시간이 걸리는
문제점이 발생합니다.

셀렉트 박스에서 조건 선택후 submit 버튼을 클릭할때만
결과가 출력되게 하려면 어떻게 하나요?

소스는 다음과 같습니다.


<script language="javascript">
<!--
function cate1Select() {
 document.searchForm.cate2.options[0].selected = true;
 document.searchForm.cate3.options[0].selected = true;
 document.searchForm.submit();
}
function cate2Select() {
 document.searchForm.cate3.options[0].selected = true;
 document.searchForm.submit();
}
function cate3Select() {
 document.searchForm.submit();
}
//-->
</script>



<table border="0" cellpadding="5" cellspacing="1" width="100%" bgcolor="#CCCCCC">
 <form name="searchForm" method="post">
 <input type="hidden" name="excel" value="">
 <tr>
  <td bgcolor="#FAFAFA">
  <select name="cate1" onChange="cate1Select();">
    <option value="">대분류</option>
<?
$sql = "SELECT cate1, cate1_name FROM ($cate_table) category GROUP BY cate1 ORDER BY cate1 ASC";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
 if($row[0] == $cate1)
  echo "<option value='$row[0]' selected>$row[1]</option>";
 else
  echo "<option value='$row[0]'>$row[1]</option>";
}
?>
  </select>
  <select name="cate2" onChange="cate2Select();">
    <option value="">중분류</option>
<?
$sql = "SELECT cate2, cate2_name FROM ($cate_table) category WHERE cate1 = $cate1 GROUP BY cate2 ORDER BY cate2 ASC";
$result = mysql_query($sql);

while($row = mysql_fetch_array($result)) {
 if($row[0] == $cate2)
  echo "<option value='$row[0]' selected>$row[1]</option>";
 else
  echo "<option value='$row[0]'>$row[1]</option>";
}
?>
  </select>
  <select name="cate3" onChange="cate3Select();">
    <option value="">소분류</option>
<?
$sql = "SELECT cate3, cate3_name FROM ($cate_table) category WHERE cate1 = '$cate1' AND cate2='$cate2' GROUP BY cate3 ORDER BY cate3 ASC";
$result = mysql_query($sql);

while($row = mysql_fetch_array($result)) {
 if($row[0] == $cate3)
  echo "<option value='$row[0]' selected>$row[1]</option>";
 else
  echo "<option value='$row[0]'>$row[1]</option>";
}
?>
  </select>
  </td>
 </tr>
 <tr>
  <td bgcolor="#FAFAFA">
  <select name="yy" style="width:50;">
    <option value="" selected>년</option>
<?
for($i=$yy_start;$i<=$yy_last;$i++) {
 if($i == $yy)
  echo "    <option value='$i' selected>{$i}</option>";
 else
  echo "    <option value='$i'>{$i}</option>";
}
?>
  </select>
  <select name="mm" style="width:50;">
    <option value="" selected>월</option>
<?
for($i=1;$i<=12;$i++) {
 $i = sprintf("%02d",$i);
 if($i == $mm)
  echo "    <option value='$i' selected>{$i}</option>";
 else
  echo "    <option value='$i'>{$i}</option>";
}
?>
  </select>
  <select name="dd" style="width:50;">
    <option value="">일</option>
<?
for($i = 1; $i <= 31; $i++) {
 $i = sprintf("%02d",$i);
 if($i == $dd)
  echo "<option value='$i' selected>$i</option>";
 else
  echo "<option value='$i'>$i</option>";
}
?>
  </select>
  <select name="job">
    <option value="">직업</option>
<?
foreach($jobs as $item => $val) {
 if($item == $job)
  echo "<option value='$item' selected>$val</option>";
 else
  echo "<option value='$item'>$val</option>";
}
?>
  </select>
  <select name="area">
    <option value="">지역</option>
<?
$sql = "SELECT area FROM members GROUP BY area ORDER BY area DESC";
$result = mysql_query($sql);

$n = 0;
while($row = mysql_fetch_array($result)) {
 if(!$row['area']) $row['area'] = "기타";
 $arr_area[$row['area']] = $row['area'];
 $n++;
}

foreach($arr_area as $item => $value) {
 if("$item" == "$area")
  echo "<option value='$item' selected>$value</option>";
 else
  echo "<option value='$item'>$value</option>";
}
?>
  </select>
  <select name="age">
    <option value="">연령</option>
<?
foreach($age_list as $item => $val) {
 if("$item" == "$age")
  echo "<option value='$item' selected>$val</option>\n";
 else
  echo "<option value='$item'>$val</option>\n";
}
?>
  </select>
  </td>
 </tr>
 <tr>
  <td bgcolor="#FAFAFA">
  <select name="key">
    <option value="m_id" <?=$key_sel['m_id']?>>아이디</option>
    <option value="m_name" <?=$key_sel['m_name']?>>이름</option>
  </select>
  <input type="text" name="keyword" size="15" value="<?=$keyword?>">
  <input type="submit" value=" 검색 " class="htc">
  <input type="button" value=" 전체 " onclick="javascript:location.href('<?=$PHP_SELF?>?pm=<?=$pm?>')" class="htc">
  <input type="button" value="엑셀저장" class="htc" onclick="window.location.href('excel_list_cate.php?yy=<?=$yy?>&cate1=<?=$cate1?>&cate2=<?=$cate2?>&cate3=<?=$cate3?>&yy=<?=$yy?>&mm=<?=$mm?>&dd=<?=$dd?>&job=<?=$job?>&area=<?=$area?>&age=<?=$age?>&key=<?=$key?>&keyword=<?=$keyword?>');">
  </td>
 </tr>
 </form>

댓글 전체

저두 잘은 모르지만 헬프미님 께서 원하시는 방법으로 하시려면 분류를 한번에 불러와야 할꺼 같습니다.

아래 내용은 제가 제인점 게시판을 만들 때 사용한 분류 입니다. 전 대분류와 소분류 두가지로 나누어 사용했는데요... 3가지 이면 소스 수정이점 있어야 할듯 합니다..^^

area = new Array(16);
//서울
area[0] = "종로구/중구/용산구/성동구/광진구/동대문구/중랑구/성북구/강북구/도봉구/노원구/은평구/서대문구/마포구/양천구/강서구/구로구/금천구/영등포구/동작구/관악구/서초구/강남구/송파구/강동구";
//부산
area[1] = "중구/서구/동구/영도구/부산진구/동래구/남구/북구/해운대구/사하구/금정구/강서구/연제구/수영구/사상구";
//대구
area[2] = "중구/동구/서구/남구/북구/수성구/달서구";
//인천
area[3] = "중구/동구/남구/연수구/남동구/부평구/계양구/서구";
//광주
area[4] = "동구/서구/남구/북구/광산구";
//대전
area[5] = "동구/중구/서구/유성구/대덕구";
//울산
area[6] = "중구/남구/동구/북구";
//경기도
area[7] = "수원시/성남시/의정부시/안양시/부천시/광명시/평택시/동두천시/안산시/고양시/과천시/구리시/남양주시/오산시/시흥시/군포시/의왕시/하남시/용인시/파주시/이천시/안성시/김포시/화성시/광주시/양주시/포천시/여주군/연천군/가평군/양평군";
//강원도
area[8] ="춘천시/원주시/강릉시/동해시/태백시/속초시/삼척시/홍천군/횡성군/영월군/평창군/정선군/철원군/화천군/양구군/인제군/고성군/양양군";
//충청북도
area[9] = "청주시/충주시/제천시/청원군/보은군/옥천군/영동군/증평군/진천군/괴산군/음성군/단양군";
//충청남도
area[10] = "천안시/공주시/보령시/아산시/서산시/논산시/계룡시/금산군/연기군/부여군/서천군/청양군/홍성군/예산군/태안군/당진군";
//전라북도
area[11] = "전주시/군산시/익산시/정읍시/남원시/김제시/완주군/진안군/무주군/장수군/임실군/순창군/고창군/부안군";
//전라남도
area[12] = "목포시/여수시/순천시/나주시/광양시/담양군/곡성군/구례군/고흥군/보성군/화순군/장흥군/강진군/해남군/영암군/무안군/함평군/영광군/장성군/완도군/진도군/신안군";
//경상북도
area[13] = "포항시/경주시/김천시/안동시/구미시/영주시/영천시/상주시/문경시/경산시/군위군/의성군/청송군/영양군/영덕군/청도군/고령군/성주군/칠곡군/예천군/봉화군/울진군/울릉군";
//경상남도
area[14] = "창원시/마산시/진주시/진해시/통영시/사천시/김해시/밀양시/거제시/양산시/의령군/함안군/창녕군/고성군/남해군/하동군/산청군/함양군/거창군/합천군";
//제주도
area[15] = "제주시/서귀포시/북제주/남제주";

//도
var korea = "서울특별시^부산광역시^대구광역시^인천광역시^광주광역시^대전광역시^울산광역시^경기도^강원도^충청북도^충청남도^전라북도^전라남도^경상북도^경상남도^제주도";

var do_area = korea.split("^");



function area_menu(){
var count = document.fwrite.wr_1.length;
for (k = 0; k < count; k++){
document.fwrite.wr_1.options.remove(0);
}
  var ca_name_value = document.fwrite.ca_name.value;

for (j=0; j< do_area.length; j++)
{
if(ca_name_value == do_area[j]){

var city_area = area[j].split("/");

for(l=0; l<city_area.length; l++)
{
  var optionValue = city_area[l];
var newItem = new Option;
newItem.text = optionValue;
newItem.value = optionValue;
  document.fwrite.wr_1.options[document.fwrite.wr_1.length]=newItem;
}
}
}
}

ca_name은 특별/광역/도를 나타내는 셀렉트 박스 이구요
wr_1 은 시/군/구 를 나타내는 셀렉트 박스 입니다.

area_menu()를 호출하게 되면 wr_1 셀렉트 박스의 option 값을 모두 삭제후 ca_name 에서 선택되어진 value 값을 가지고 시/군/구 이름을 검색해서 wr_1의 셀렉트 박스의 옵션값으로 저장해주는 형식입니다.

옵션이 하나더 생긴다면 area_menu()내용을 복사후 셀렉트 네임만 박꿔주신후 area_menu()마지막에서 호출 한번 더 시키년 될듯 합니다.

부디 도움이 되었으면 합니다..^^

그럼 좋은 사이트 만드세요..^^
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT