테스트 사이트 - 개발 중인 베타 버전입니다

zip.db로 지역을 3단 셀렉트로 불러오는 소스 크롬 파폭 오작동 문의 채택완료

공대그녀 11년 전 조회 8,180
안녕하세요. :)
아래는 dadada님이 올리신 게시물의 일부입니다.
zip.db로 지역을 3단 셀렉트로 불러오는 소스인데요.
이상하게 크롬,파폭,사파리에서 wr_2 wr_3 변수를 사용하는 시/구/군, 동/읍/면 셀렉트가
검색후에 자동으로 주소변환도 안되고, 셀렉트 위치도 기억을 못해요.
익스플로어 8에서는 아주 잘되거든요.
이리저리 바꿔봐도 잘 안되네요. 에고~ 어디가 문제일까요?
 
<?
function get_select_addr_si($name,$selected,$event){
 global $g4;
 $onchange = "";
 if($event)$onchange = "onchange=\"$event\"";
 $zipfile = array();
 $fp = fopen($g4[bbs_path]."/zip.db", "r");
 while(!feof($fp)) {
     $zipfile[] = fgets($fp, 4096);
 }
 fclose($fp);
 
 $str = "<select id='$name' name='$name' $onchange>\n";
 $str .= "<option value=''>::지역::</option>\n";
 
 $temp_si = "";
 while ($zipcode = each($zipfile))
 {
  $temp_addr = explode(" ", substr($zipcode[1],8));
  if($temp_si != $temp_addr[0]){
   $select = "";
   if($temp_addr[0]==$selected && $selected)$select = "selected";
   $str.="<option value='".trim($temp_addr[0])."' $select>$temp_addr[0]</option>\n";
   $temp_si = $temp_addr[0];
  }
 }
 $str .="</select>\n";
 return $str;
}
?>
<script language="JavaScript" id="DynamicC"></script>
<script language="JavaScript" id="DynamicD"></script>
<script language="javascript">
function makeD(firstLoc,secondLoc){
    var ValueA = document.getElementsByName(firstLoc)[0].value;
 DynamicC.src = "<?=$board_skin_path?>/makeSi2.php?selectA="+ValueA+"&secondLoc="+secondLoc;
}
function makeE(firstLoc,secondLoc,thirdLoc){
    var ValueA = document.getElementsByName(firstLoc)[0].value;
    var ValueB = document.getElementsByName(secondLoc)[0].value;        
    DynamicD.src = "<?=$board_skin_path?>/makeDong2.php?selectA="+ValueA+"&selectB="+ValueB+"&thirdLoc="+thirdLoc;
}
 // -->
  </SCRIPT>
 
    <?=get_select_addr_si("wr_1",$wr_1,"makeD('wr_1','wr_2');")?>
    <?if($wr_1) echo "<script language='javascript'>makeD('wr_1','wr_2');</script>";
    ?>
    <select name="wr_2" onChange="makeE('wr_1','wr_2','wr_3')">
    <option value="">::시/구/군::</option>
    </select>
    <?if($wr_2)echo "<script language='javascript'>document.getElementById('wr_2').value='$wr_2';makeE('wr_1','wr_2','wr_3');</script>";
    ?>
    <select name="wr_3">
    <option value="">::동/읍/면::</option>
    </select>
    <?if($wr_3) echo "<script language='javascript'>document.getElementById('wr_3').value='$wr_3';</script>"; ?> 
    <input type="image" src="<?=$board_skin_path?>/img/btn_search.gif" border='0' align="absmiddle">
댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
11년 전
.... 
javascript 가 문제라고 판단하신다면 실행시 console창에 나타나는 에러가 없는지 확인하여 
그 문제를 해결해 나가야 합니다.

또한 이와 같이 소스코드 만으로는 언급한 문제를 추적 해결하기 어렵습니다.

작업중인 사이트를 임시로 올려두시고 요청을 하시는 것이 좋습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

공대그녀
11년 전
푸르게님 답변 감사드립니다.:)
파폭 콘솔에서는 TypeError: document.getElementById(...) is null 이라고 뜨는데요.
아무래도,
<?if($wr_2)echo "<script language='javascript'>document.getElementById('wr_2').value='$wr_2';makeE('wr_1','wr_2','wr_3');</script>";
이 부분을 못불러오는 것 같아요.
어떻게 해결 방법이 없을까요? ㅜㅜ

댓글을 작성하려면 로그인이 필요합니다.

11년 전
fsearch_set 함수가 있나 확인해 보세요
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

공대그녀
11년 전
fsearch_set 함수는 없는것 같아요.
form 의 onsubmit에 return fsearch_set(this) 이라고 있습니다.
<form name=fsearch method=get style="margin:0;" onsubmit="return fsearch_set(this);">

댓글을 작성하려면 로그인이 필요합니다.

11년 전
<select name="wr_2"  id="wr_2"
<select name="wr_3"  id="wr_3"
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

공대그녀
11년 전
슈와이님 답변 감사드립니다.
말씀하신대로 id값을 추가하니,
TypeError: document.getElementById(...) is null 는 사라졌는데요.
ReferenceError: fsearch_set is not defined 가 뜹니다.
되는듯 하면서 다시 셀렉트가 풀려버려요.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인