검색버튼을 넣었는데 에러가나네요.. 봐주세요. 정보
검색버튼을 넣었는데 에러가나네요.. 봐주세요.본문
<script-x language="javascript-x">
<!--//-- 스킨용 : 주소 셀렉트창 (대도시,구.군,여유필드]
var cat1_info = new Array, cat2_info = new Array;
var cat2_num = new Array;
cat1_info[1] = { serial:11, name:'서울' }
cat1_info[2] = { serial:21, name:'부산' }
cat1_info[3] = { serial:22, name:'대구' }
cat1_info[4] = { serial:23, name:'인천' }
cat1_info[5] = { serial:24, name:'광주' }
cat1_info[6] = { serial:25, name:'대전' }
cat1_info[7] = { serial:26, name:'울산' }
cat1_info[8] = { serial:41, name:'경기' }
cat1_info[9] = { serial:42, name:'강원' }
cat1_info[10] = { serial:43, name:'충북' }
cat1_info[11] = { serial:44, name:'충남' }
cat1_info[12] = { serial:45, name:'전북' }
cat1_info[13] = { serial:46, name:'전남' }
cat1_info[14] = { serial:47, name:'경북' }
cat1_info[15] = { serial:48, name:'경남' }
cat1_info[16] = { serial:49, name:'제주' }
<?
for ($i = 0; $i < 16; $i++) {
switch ($i) {
case (0) : $area_code = '11'; $area_name = '서울'; break;
case (1) : $area_code = '21' ; $area_name = '부산'; break;
case (2) : $area_code = '22' ; $area_name = '대구'; break;
case (3) : $area_code = '23' ; $area_name = '인천'; break;
case (4) : $area_code = '24' ; $area_name = '광주'; break;
case (5) : $area_code = '25' ; $area_name = '대전'; break;
case (6) : $area_code = '26' ; $area_name = '울산'; break;
case (7) : $area_code = '41' ; $area_name = '경기'; break;
case (8) : $area_code = '42' ; $area_name = '강원'; break;
case (9) : $area_code = '43' ; $area_name = '충북'; break;
case (10) : $area_code = '44' ; $area_name = '충남'; break;
case (11) : $area_code = '45' ; $area_name = '전북'; break;
case (12) : $area_code = '46' ; $area_name = '전남'; break;
case (13) : $area_code = '47' ; $area_name = '경북'; break;
case (14) : $area_code = '48' ; $area_name = '경남'; break;
case (15) : $area_code = '49' ; $area_name = '제주'; break;
}
$query1 = "Select distinct(zp_gugun) From g4_zip Where zp_sido = '$area_name'";
$req1 = sql_query($query1);
if(!$req1) {
exit;
}
$cnt = mysql_num_rows($req1);
?>
cat2_num[<?echo($i+1);?>] = <?echo($cnt);?>;
cat2_info[<?echo($i+1);?>] = new Array;
<?
$j = 0;
while ($rs1 = mysql_fetch_array($req1)) {
$region_name = $rs1[0];
$region_name = trim($region_name);
?>
cat2_info[<?echo($i+1);?>][<?echo($j);?>] = { serial:<?echo $area_code; ?>, name:'<?echo($region_name);?>' };
<?
$j++;
} // while loop end
} // for loop end
?>
function onChangeCat1( cat1 ){
document.fsearch_area.region_name.options.length = cat2_num[cat1] + 1;
document.fsearch_area.region_name.options[0] = new Option( '전지역', '', true, true );
document.fsearch_area.region_name.options[0].value = cat1_info[cat1].name;
for( var i=0; i<cat2_num[cat1]; i++ ){
document.fsearch_area.region_name.options[i+1] = new Option( cat2_info[cat1][i].name, cat2_info[cat1][i].serial );
document.fsearch_area.region_name.options[i+1].value = cat1_info[cat1].name + " " + cat2_info[cat1][i].name;
if( cat2_info[cat1][i].serial == 1 ) {
document.fsearch_area.region_name.options[i+1].selected = true;
}
}
}
//-- wr_3, wr_6 등 중복셀렉트가 가능하게 해주는 함수
//-- 수정작업시, 아래 함수와 함께 write.skin.php에 사용된 '여유필드(wr_?)이름과 셀렉트문'을 가져와 붙이면 바로적용가능
//-- 단, 반드시 게시물리스트(list.skin.php)에 여유필드값이 게시물에 주어져야함.
//-- 중복필드가 필요없는 경우 'document.fsearch_area.srch_type.value'삭제, 셀렉트문삭제, value값에서 영필드명삭제
function onChangeKey() {
document.fsearch_area.stx.value = document.fsearch_area.region_name.value + " " + document.fsearch_area.srch_type.value;
document.fsearch_area.submit();
}
//-->
</script-x>
<table cellpadding=0 cellspacing=0 border=0>
<form name=fsearch_area method=get>
<input type=hidden name=bo_table value="<?=$bo_table?>">
<input type=hidden name=sca value="<?=$sca?>">
<tr>
<td>+ 지역검색 :
<input type=hidden name=sfl value="wr_5||wr_14">
<select name=area_name onChange="onChangeCat1(document.fsearch_area.area_name.value)">
<option value="" selected>1차 지역선택</option>
<option value=1>서울특별시</option>
<option value=2>부산광역시</option>
<option value=3>대구광역시</option>
<option value=4>인천광역시</option>
<option value=5>광주광역시</option>
<option value=6>대전광역시</option>
<option value=7>울산광역시</option>
<option value=8>경기도</option>
<option value=9>강원도</option>
<option value=10>충청북도</option>
<option value=11>충청남도</option>
<option value=12>전라북도</option>
<option value=13>전라남도</option>
<option value=14>경상북도</option>
<option value=15>경상남도</option>
<option value=16>제주도</option>
</select>
<select name=region_name selected>
<option value="">2차 구.군선택</option>
</select>
<select name=srch_type onChange="onChangeKey()">
<option value='' selected>매물분류</option>
<option value='빌딩/건물'>빌딩/건물</option>
<option value='상가'>상가</option>
<option value='주택'>주택</option>
<option value='주상복합'>주상복합</option>
<option value='토지'>토지</option>
<option value='전답'>전답</option>
<option value='재개발'>재개발</option>
<option value='공장/창고'>공장/창고</option>
</select>
<input type=hidden name=sop value='and'>
<input type=hidden name=stx value=''>
</td>
</tr>
</form>
</table>
<?
if ($area_name != "") { $stx = ""; }
?>
---------------------------------------------------------------------------------
위소스는 현재 셀렉트 3개를 선택해야 작동하는데
<select name=srch_type onChange="onChangeKey()"> 을
<select name=srch_type> 로 고치고
select문 뒤에 다음과 같이 검색 버튼을 만들어
<INPUT type=image src="<?=$board_skin_path?>/img/search.gif" onclick="onChangeKey()">
를 추가 했습니다.
select를 선택해서 검색 누르면 에러가 없이 잘 작동됩니다.
그런데 select를 선택하지 않고 검색을 누르면 다음과 같은 에러가 납니다.
<!--//-- 스킨용 : 주소 셀렉트창 (대도시,구.군,여유필드]
var cat1_info = new Array, cat2_info = new Array;
var cat2_num = new Array;
cat1_info[1] = { serial:11, name:'서울' }
cat1_info[2] = { serial:21, name:'부산' }
cat1_info[3] = { serial:22, name:'대구' }
cat1_info[4] = { serial:23, name:'인천' }
cat1_info[5] = { serial:24, name:'광주' }
cat1_info[6] = { serial:25, name:'대전' }
cat1_info[7] = { serial:26, name:'울산' }
cat1_info[8] = { serial:41, name:'경기' }
cat1_info[9] = { serial:42, name:'강원' }
cat1_info[10] = { serial:43, name:'충북' }
cat1_info[11] = { serial:44, name:'충남' }
cat1_info[12] = { serial:45, name:'전북' }
cat1_info[13] = { serial:46, name:'전남' }
cat1_info[14] = { serial:47, name:'경북' }
cat1_info[15] = { serial:48, name:'경남' }
cat1_info[16] = { serial:49, name:'제주' }
<?
for ($i = 0; $i < 16; $i++) {
switch ($i) {
case (0) : $area_code = '11'; $area_name = '서울'; break;
case (1) : $area_code = '21' ; $area_name = '부산'; break;
case (2) : $area_code = '22' ; $area_name = '대구'; break;
case (3) : $area_code = '23' ; $area_name = '인천'; break;
case (4) : $area_code = '24' ; $area_name = '광주'; break;
case (5) : $area_code = '25' ; $area_name = '대전'; break;
case (6) : $area_code = '26' ; $area_name = '울산'; break;
case (7) : $area_code = '41' ; $area_name = '경기'; break;
case (8) : $area_code = '42' ; $area_name = '강원'; break;
case (9) : $area_code = '43' ; $area_name = '충북'; break;
case (10) : $area_code = '44' ; $area_name = '충남'; break;
case (11) : $area_code = '45' ; $area_name = '전북'; break;
case (12) : $area_code = '46' ; $area_name = '전남'; break;
case (13) : $area_code = '47' ; $area_name = '경북'; break;
case (14) : $area_code = '48' ; $area_name = '경남'; break;
case (15) : $area_code = '49' ; $area_name = '제주'; break;
}
$query1 = "Select distinct(zp_gugun) From g4_zip Where zp_sido = '$area_name'";
$req1 = sql_query($query1);
if(!$req1) {
exit;
}
$cnt = mysql_num_rows($req1);
?>
cat2_num[<?echo($i+1);?>] = <?echo($cnt);?>;
cat2_info[<?echo($i+1);?>] = new Array;
<?
$j = 0;
while ($rs1 = mysql_fetch_array($req1)) {
$region_name = $rs1[0];
$region_name = trim($region_name);
?>
cat2_info[<?echo($i+1);?>][<?echo($j);?>] = { serial:<?echo $area_code; ?>, name:'<?echo($region_name);?>' };
<?
$j++;
} // while loop end
} // for loop end
?>
function onChangeCat1( cat1 ){
document.fsearch_area.region_name.options.length = cat2_num[cat1] + 1;
document.fsearch_area.region_name.options[0] = new Option( '전지역', '', true, true );
document.fsearch_area.region_name.options[0].value = cat1_info[cat1].name;
for( var i=0; i<cat2_num[cat1]; i++ ){
document.fsearch_area.region_name.options[i+1] = new Option( cat2_info[cat1][i].name, cat2_info[cat1][i].serial );
document.fsearch_area.region_name.options[i+1].value = cat1_info[cat1].name + " " + cat2_info[cat1][i].name;
if( cat2_info[cat1][i].serial == 1 ) {
document.fsearch_area.region_name.options[i+1].selected = true;
}
}
}
//-- wr_3, wr_6 등 중복셀렉트가 가능하게 해주는 함수
//-- 수정작업시, 아래 함수와 함께 write.skin.php에 사용된 '여유필드(wr_?)이름과 셀렉트문'을 가져와 붙이면 바로적용가능
//-- 단, 반드시 게시물리스트(list.skin.php)에 여유필드값이 게시물에 주어져야함.
//-- 중복필드가 필요없는 경우 'document.fsearch_area.srch_type.value'삭제, 셀렉트문삭제, value값에서 영필드명삭제
function onChangeKey() {
document.fsearch_area.stx.value = document.fsearch_area.region_name.value + " " + document.fsearch_area.srch_type.value;
document.fsearch_area.submit();
}
//-->
</script-x>
<table cellpadding=0 cellspacing=0 border=0>
<form name=fsearch_area method=get>
<input type=hidden name=bo_table value="<?=$bo_table?>">
<input type=hidden name=sca value="<?=$sca?>">
<tr>
<td>+ 지역검색 :
<input type=hidden name=sfl value="wr_5||wr_14">
<select name=area_name onChange="onChangeCat1(document.fsearch_area.area_name.value)">
<option value="" selected>1차 지역선택</option>
<option value=1>서울특별시</option>
<option value=2>부산광역시</option>
<option value=3>대구광역시</option>
<option value=4>인천광역시</option>
<option value=5>광주광역시</option>
<option value=6>대전광역시</option>
<option value=7>울산광역시</option>
<option value=8>경기도</option>
<option value=9>강원도</option>
<option value=10>충청북도</option>
<option value=11>충청남도</option>
<option value=12>전라북도</option>
<option value=13>전라남도</option>
<option value=14>경상북도</option>
<option value=15>경상남도</option>
<option value=16>제주도</option>
</select>
<select name=region_name selected>
<option value="">2차 구.군선택</option>
</select>
<select name=srch_type onChange="onChangeKey()">
<option value='' selected>매물분류</option>
<option value='빌딩/건물'>빌딩/건물</option>
<option value='상가'>상가</option>
<option value='주택'>주택</option>
<option value='주상복합'>주상복합</option>
<option value='토지'>토지</option>
<option value='전답'>전답</option>
<option value='재개발'>재개발</option>
<option value='공장/창고'>공장/창고</option>
</select>
<input type=hidden name=sop value='and'>
<input type=hidden name=stx value=''>
</td>
</tr>
</form>
</table>
<?
if ($area_name != "") { $stx = ""; }
?>
---------------------------------------------------------------------------------
위소스는 현재 셀렉트 3개를 선택해야 작동하는데
<select name=srch_type onChange="onChangeKey()"> 을
<select name=srch_type> 로 고치고
select문 뒤에 다음과 같이 검색 버튼을 만들어
<INPUT type=image src="<?=$board_skin_path?>/img/search.gif" onclick="onChangeKey()">
를 추가 했습니다.
select를 선택해서 검색 누르면 에러가 없이 잘 작동됩니다.
그런데 select를 선택하지 않고 검색을 누르면 다음과 같은 에러가 납니다.
select distinct wr_parent from g4_write_state where and (wr_num between '-4' and '9996')
1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'and (wr_num between '-4' and '9996')' at line 1
error file : /addang/bbs/board.php
에러의 내용이 무엇인지....
어떻게 해야 에러가 나오지 않는지요?
살펴봐주시고 고쳐 주시면 감사하겟습니다.
항상 도움만 받네요.. 아직초보라. 언젠가는 도움을 줄수 있겟죠 ^^
감사합니다.
댓글 전체
********* 답변 수정했습니다.***************
function onChangeKey() {
document.fsearch_area.stx.value = document.fsearch_area.region_name.value + " " + document.fsearch_area.srch_type.value;
document.fsearch_area.submit();
}
선택을 하지 않고 검색버튼을 누르면 각 필드의 값이 비어있어서 그래요... default값을 주던지 해야죠. 아니면 넘어오는 값이 비어있을 때 alert를 뜨게 하든지요. 예를 들면
function onChangeKey() {
if (!document.fsearch_area.region_name.value.length) {
alert('1차 지역선택을 하지 않았으면 먼저 하고 그리고 2차 구.군을 선택하세요');
return false;
}
if (!document.fsearch_area.srch_type.value.length ) {
alert('매물분류를 선택하세요.');
return false;
}
document.fsearch_area.stx.value = document.fsearch_area.region_name.value + " " + document.fsearch_area.srch_type.value;
document.fsearch_area.submit();
}
식으로 onChangeKey()함수를 처리하면 비어있을 경우 자바스크립트 에러가 뜨고 폼이 전송되지 않습니다.
function onChangeKey() {
document.fsearch_area.stx.value = document.fsearch_area.region_name.value + " " + document.fsearch_area.srch_type.value;
document.fsearch_area.submit();
}
선택을 하지 않고 검색버튼을 누르면 각 필드의 값이 비어있어서 그래요... default값을 주던지 해야죠. 아니면 넘어오는 값이 비어있을 때 alert를 뜨게 하든지요. 예를 들면
function onChangeKey() {
if (!document.fsearch_area.region_name.value.length) {
alert('1차 지역선택을 하지 않았으면 먼저 하고 그리고 2차 구.군을 선택하세요');
return false;
}
if (!document.fsearch_area.srch_type.value.length ) {
alert('매물분류를 선택하세요.');
return false;
}
document.fsearch_area.stx.value = document.fsearch_area.region_name.value + " " + document.fsearch_area.srch_type.value;
document.fsearch_area.submit();
}
식으로 onChangeKey()함수를 처리하면 비어있을 경우 자바스크립트 에러가 뜨고 폼이 전송되지 않습니다.