검색어 자동완성 부탁드립니다. 정보
검색어 자동완성 부탁드립니다.본문
검색폼에 검색어 자동완성 기능을 넣고 싶은데.
전체검색 에 보니 자동완성 과 관련된 스킨이 있어서 전체검색에는 적용을 했거든요.
그런데 제 사이트에 메인화면에 검색폼이 하나 더 있습니다.
거기에도 검색어 자동완성 기능을 넣고 싶은서 소스 비교해서 넣어 보았는데 결국 실패에 실패를 거듭했습니다.
초보의 한계를 통감하면서 이렇게 글 남깁니다.
좀 도와주십시오 <-- 개미핡기 버젼 ^^
ㅠ..ㅠ
1. 메인 검색폼에 사용된 소스
<!--검색 시작 -->
<table cellpadding="0" cellspacing="0" width="160" border="0">
<tr>
<td width="100%" height="19" align="right" valign="middle"><table cellspacing="0" cellpadding="0" width="160" border="0">
<form action="javascript:fsearchbox_submit(document.fsearchbox);" method="get" name="fsearchbox" id="fsearchbox">
<input type="hidden" name="sfl" value="wr_subject" />
<input type="hidden" name="sop" value="and" />
<tr>
<td valign="top" align="left">
<input name="stx" onblur="this.style.background='#ffffff'" style="BORDER-RIGHT: rgb(204,204,204) 1px solid; BORDER-TOP: rgb(204,204,204) 1px solid; BACKGROUND-IMAGE: url(<?=$g4['../path']?>/img/btn_search_bg.gif); BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 200px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; HEIGHT: 19px" onfocus="this.style.background='#ffffff'" size="16" maxlength="15">
</td>
<td width="48" valign="top" align="left"><table cellpadding="0" cellspacing="0" width="42">
<tr>
<td width="5"> </td>
<td width="42" valign="bottom" height="19"><input name="image" type="image" src="<?=$g4[path]?>/img/btn_search_orange.gif" width="42" height="20" border="0" /></td>
</tr>
</table></td>
</tr>
</form>
</table>
<script language="JavaScript" type="text/javascript">
function fsearchbox_submit(f)
{
if (f.stx.value == '')
{
alert("검색어를 입력하세요.");
f.stx.select();
f.stx.focus();
return;
}
<table cellpadding="0" cellspacing="0" width="160" border="0">
<tr>
<td width="100%" height="19" align="right" valign="middle"><table cellspacing="0" cellpadding="0" width="160" border="0">
<form action="javascript:fsearchbox_submit(document.fsearchbox);" method="get" name="fsearchbox" id="fsearchbox">
<input type="hidden" name="sfl" value="wr_subject" />
<input type="hidden" name="sop" value="and" />
<tr>
<td valign="top" align="left">
<input name="stx" onblur="this.style.background='#ffffff'" style="BORDER-RIGHT: rgb(204,204,204) 1px solid; BORDER-TOP: rgb(204,204,204) 1px solid; BACKGROUND-IMAGE: url(<?=$g4['../path']?>/img/btn_search_bg.gif); BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 200px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; HEIGHT: 19px" onfocus="this.style.background='#ffffff'" size="16" maxlength="15">
</td>
<td width="48" valign="top" align="left"><table cellpadding="0" cellspacing="0" width="42">
<tr>
<td width="5"> </td>
<td width="42" valign="bottom" height="19"><input name="image" type="image" src="<?=$g4[path]?>/img/btn_search_orange.gif" width="42" height="20" border="0" /></td>
</tr>
</table></td>
</tr>
</form>
</table>
<script language="JavaScript" type="text/javascript">
function fsearchbox_submit(f)
{
if (f.stx.value == '')
{
alert("검색어를 입력하세요.");
f.stx.select();
f.stx.focus();
return;
}
/*
// 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
var cnt = 0;
for (var i=0; i<f.stx.value.length; i++)
{
if (f.stx.value.charAt(i) == ' ')
cnt++;
}
if (cnt > 1)
{
alert("빠른 검색을 위하여 검색어에 공백은 한개만 입력할 수 있습니다.");
f.stx.select();
f.stx.focus();
return;
}
*/
f.action = "<?=$g4[bbs_path]?>/search.php";
f.submit();
}
</script> </td>
</tr>
</table>
<!--검색 끝 -->
// 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
var cnt = 0;
for (var i=0; i<f.stx.value.length; i++)
{
if (f.stx.value.charAt(i) == ' ')
cnt++;
}
if (cnt > 1)
{
alert("빠른 검색을 위하여 검색어에 공백은 한개만 입력할 수 있습니다.");
f.stx.select();
f.stx.focus();
return;
}
*/
f.action = "<?=$g4[bbs_path]?>/search.php";
f.submit();
}
</script> </td>
</tr>
</table>
<!--검색 끝 -->
2. 전체검색 자동완성 기능이 삽입된 스킨의 소스
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once("$g4[path]/lib/search0.lib.php");
include_once("$g4[path]/lib/search7.lib.php");
?>
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once("$g4[path]/lib/search0.lib.php");
include_once("$g4[path]/lib/search7.lib.php");
?>
<script type="text/javascript" language="JavaScript" src="<?="$g4[path]/js/suggest.js"?>"></script>
<!-- <table width="95%" border="0" cellspacing="0" cellpadding="0" align="center"> -->
<table width="95%" border="0" cellspacing="0" cellpadding="0" >
<tr>
<td width="24"> </td>
<!-- <td><table align=center width=95% cellpadding=2 cellspacing=0 height="50"> -->
<td><table width=95% cellpadding=2 cellspacing=0 height="50">
<form name=fsearch method=get action="javascript:fsearch_submit(document.fsearch);" autocomplete="off">
<input type="hidden" name="srows" value="<?=$srows?>">
<tr>
<!-- <td align=center height="25"> -->
<td height="25" colspan="3">
<div align="center">
<script language="JavaScript">document.getElementById("gr_id").value = "<?=$gr_id?>";</script>
<select name=sfl class=select>
<option value="wr_subject||wr_content">제목+내용</option>
<option value="wr_subject">제목</option>
<option value="wr_content">내용</option>
<option value="mb_id">회원아이디</option>
<option value="wr_name">이름</option>
</select>
<input name=stx type=text value='<?=$text_stx?>' maxlength=20 required itemname="검색어">
<input name="image" type=image src="<?=$search_skin_path?>/img/search_btn.gif" align="absmiddle" width="60" height="25" border=0>
<script language="javascript">
document.fsearch.sfl.value = "<?=$sfl?>";
function fsearch_submit(f)
{
/*
// 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
var cnt = 0;
for (var i=0; i<f.stx.value.length; i++)
{
if (f.stx.value.charAt(i) == ' ')
cnt++;
}
<table width="95%" border="0" cellspacing="0" cellpadding="0" >
<tr>
<td width="24"> </td>
<!-- <td><table align=center width=95% cellpadding=2 cellspacing=0 height="50"> -->
<td><table width=95% cellpadding=2 cellspacing=0 height="50">
<form name=fsearch method=get action="javascript:fsearch_submit(document.fsearch);" autocomplete="off">
<input type="hidden" name="srows" value="<?=$srows?>">
<tr>
<!-- <td align=center height="25"> -->
<td height="25" colspan="3">
<div align="center">
<script language="JavaScript">document.getElementById("gr_id").value = "<?=$gr_id?>";</script>
<select name=sfl class=select>
<option value="wr_subject||wr_content">제목+내용</option>
<option value="wr_subject">제목</option>
<option value="wr_content">내용</option>
<option value="mb_id">회원아이디</option>
<option value="wr_name">이름</option>
</select>
<input name=stx type=text value='<?=$text_stx?>' maxlength=20 required itemname="검색어">
<input name="image" type=image src="<?=$search_skin_path?>/img/search_btn.gif" align="absmiddle" width="60" height="25" border=0>
<script language="javascript">
document.fsearch.sfl.value = "<?=$sfl?>";
function fsearch_submit(f)
{
/*
// 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
var cnt = 0;
for (var i=0; i<f.stx.value.length; i++)
{
if (f.stx.value.charAt(i) == ' ')
cnt++;
}
if (cnt > 1)
{
alert("빠른 검색을 위하여 검색어에 공백은 한개만 입력할 수 있습니다.");
f.stx.select();
f.stx.focus();
return;
}
*/
f.action = "";
f.submit();
}
</script>
</div></td>
</tr>
<tr>
<!-- <td align=center> 연산자 -->
<td> </td>
</tr>
</form>
</table></td>
<td width="23"> </td>
</tr>
</table>
{
alert("빠른 검색을 위하여 검색어에 공백은 한개만 입력할 수 있습니다.");
f.stx.select();
f.stx.focus();
return;
}
*/
f.action = "";
f.submit();
}
</script>
</div></td>
</tr>
<tr>
<!-- <td align=center> 연산자 -->
<td> </td>
</tr>
</form>
</table></td>
<td width="23"> </td>
</tr>
</table>
<!------------검색폼부분끝-------------->
<p>
<p>
<!-- <table align=center width=95% cellpadding=2 cellspacing=0> -->
<table width=95% cellpadding=2 cellspacing=0>
<tr>
<td style='word-break:break-all;' class=search>
<?
if ($stx)
{
echo "<b>검색된 리스트</b> (<b>{$board_count}</b>개의 리스트, <b>".number_format($total_count)."</b>개의 게시글, <b>".number_format($page)."/".number_format($total_page)."</b> 페이지)";
if ($board_count)
{
echo "<ul><ul style='line-height:130%;'>";
if ($onetable)
echo "<img src='$search_skin_path/img/icon_folder2.gif' border='0' align='absmiddle'> <a href='?$search_query&gr_id=$gr_id'>전체게시판 검색</a>";
//echo "<img src='$search_skin_path/img/icon_folder2.gif' border='0' align='absmiddle'> ";
echo $str_board_list;
echo "</ul></ul>";
}
else
{
echo "<ul style='line-height:130%;'><li><b>검색된 자료가 하나도 없습니다.</b></ul>";
}
}
?>
if ($stx)
{
echo "<b>검색된 리스트</b> (<b>{$board_count}</b>개의 리스트, <b>".number_format($total_count)."</b>개의 게시글, <b>".number_format($page)."/".number_format($total_page)."</b> 페이지)";
if ($board_count)
{
echo "<ul><ul style='line-height:130%;'>";
if ($onetable)
echo "<img src='$search_skin_path/img/icon_folder2.gif' border='0' align='absmiddle'> <a href='?$search_query&gr_id=$gr_id'>전체게시판 검색</a>";
//echo "<img src='$search_skin_path/img/icon_folder2.gif' border='0' align='absmiddle'> ";
echo $str_board_list;
echo "</ul></ul>";
}
else
{
echo "<ul style='line-height:130%;'><li><b>검색된 자료가 하나도 없습니다.</b></ul>";
}
}
?>
<?
$k=0;
for ($idx=$table_index, $k=0; $idx<count($search_table) && $k<$rows; $idx++)
{
echo "<img src='$search_skin_path/img/icon_folder2.gif' border='0' align='absmiddle'> <b><a href='./board.php?bo_table={$search_table[$idx]}&{$search_query}'><u>{$bo_subject[$idx]}</u></a>에서의 검색결과</b>";
$comment_href = "";
for ($i=0; $i<count($list[$idx]) && $k<$rows; $i++, $k++)
{
$content = cut_str(trim(strip_tags($list[$idx][$i][wr_content])),300,"…");
$content = search_font($stx, $content);
echo "<ul><ul style='line-height:130%;'> <img src='$search_skin_path/img/icon_list.gif' border='0' align='absmiddle'>";
if ($list[$idx][$i][wr_is_comment])
{
echo "<font color=999999>[코멘트]</font> ";
$comment_href = "#c_".$list[$idx][$i][wr_id];
}
echo "<a href='{$list[$idx][$i][href]}{$comment_href}'><u>";
echo $list[$idx][$i][subject];
echo "</u></a> [<a href='{$list[$idx][$i][href]}{$comment_href}' target=_blank>새창</a>]<br>";
echo $content;
echo "<br><font color=#999999>{$list[$idx][$i][wr_datetime]}</font> ";
echo $list[$idx][$i][name];
echo "</ul></ul>";
}
}
?>
$k=0;
for ($idx=$table_index, $k=0; $idx<count($search_table) && $k<$rows; $idx++)
{
echo "<img src='$search_skin_path/img/icon_folder2.gif' border='0' align='absmiddle'> <b><a href='./board.php?bo_table={$search_table[$idx]}&{$search_query}'><u>{$bo_subject[$idx]}</u></a>에서의 검색결과</b>";
$comment_href = "";
for ($i=0; $i<count($list[$idx]) && $k<$rows; $i++, $k++)
{
$content = cut_str(trim(strip_tags($list[$idx][$i][wr_content])),300,"…");
$content = search_font($stx, $content);
echo "<ul><ul style='line-height:130%;'> <img src='$search_skin_path/img/icon_list.gif' border='0' align='absmiddle'>";
if ($list[$idx][$i][wr_is_comment])
{
echo "<font color=999999>[코멘트]</font> ";
$comment_href = "#c_".$list[$idx][$i][wr_id];
}
echo "<a href='{$list[$idx][$i][href]}{$comment_href}'><u>";
echo $list[$idx][$i][subject];
echo "</u></a> [<a href='{$list[$idx][$i][href]}{$comment_href}' target=_blank>새창</a>]<br>";
echo $content;
echo "<br><font color=#999999>{$list[$idx][$i][wr_datetime]}</font> ";
echo $list[$idx][$i][name];
echo "</ul></ul>";
}
}
?>
<!-- <p align=center><?=$write_pages?> -->
<p ><?=$write_pages?>
<p ><?=$write_pages?>
</td></tr></table>
<script language="JavaScript">
document.fsearch.stx.obj =
sug_set_properties(document.fsearch.stx, '<?=$search_skin_path?>/suggest_search.php', true, false, true);
</script>
document.fsearch.stx.obj =
sug_set_properties(document.fsearch.stx, '<?=$search_skin_path?>/suggest_search.php', true, false, true);
</script>
댓글 전체
안녕하세요..
잘 될진 모르겠는데요..저도 메인홈에 따로 적용해봤는데 저는 잘 되더군요..
혹시 이렇게 함 해보세요..
맨위에 메인홈 검색부분부터 검색 끝까지 아래 소스로 대체 해보세요.
<script type="text/javascript" language="JavaScript" src="<?="$g4[path]/js/suggest.js"?>"></script>
<table cellpadding="0" cellspacing="0" width="160" border="0">
<tr>
<td width="100%" height="19" align="right" valign="middle"><table cellspacing="0" cellpadding="0" width="160" border="0">
<form action="javascript:fsearchbox_submit(document.fsearchbox);" method="get" name="fsearchbox" id="fsearchbox">
<input type="hidden" name="sfl" value="wr_subject" />
<input type="hidden" name="sop" value="and" />
<tr>
<td valign="top" align="left">
<input name="stx" onblur="this.style.background='#ffffff'" style="BORDER-RIGHT: rgb(204,204,204) 1px solid; BORDER-TOP: rgb(204,204,204) 1px solid; BACKGROUND-IMAGE: url(<?=$g4['../path']?>/img/btn_search_bg.gif); BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 200px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; HEIGHT: 19px" onfocus="this.style.background='#ffffff'" size="16" maxlength="15">
</td>
<td width="48" valign="top" align="left"><table cellpadding="0" cellspacing="0" width="42">
<tr>
<td width="5"> </td>
<td width="42" valign="bottom" height="19"><input name="image" type="image" src="<?=$g4[path]?>/img/btn_search_orange.gif" width="42" height="20" border="0" /></td>
</tr>
</table></td>
</tr>
</form>
</table>
<script language="JavaScript" type="text/javascript">
document.fsearchbox.stx.obj =
sug_set_properties(document.fsearchbox.stx, '<?=$g4[path]?>/skin/search/basic/suggest_search.php', true, false, true);
document.onload = document.fsearchbox.stx.focus();
function fsearchbox_submit(f)
{
if (f.stx.value == '')
{
alert("검색어를 입력하세요.");
f.stx.select();
f.stx.focus();
return;
}
/*
// 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
var cnt = 0;
for (var i=0; i<f.stx.value.length; i++)
{
if (f.stx.value.charAt(i) == ' ')
cnt++;
}
if (cnt > 1)
{
alert("빠른 검색을 위하여 검색어에 공백은 한개만 입력할 수 있습니다.");
f.stx.select();
f.stx.focus();
return;
}
*/
f.action = "<?=$g4[bbs_path]?>/search.php";
f.submit();
}
</script> </td>
</tr>
</table>
<!--검색 끝 -->
<script language="JavaScript">
document.fsearch.stx.obj =
sug_set_properties(document.fsearch.stx, '<?=$search_skin_path?>/suggest_search.php', true, false, true);
</script>
잘 될진 모르겠는데요..저도 메인홈에 따로 적용해봤는데 저는 잘 되더군요..
혹시 이렇게 함 해보세요..
맨위에 메인홈 검색부분부터 검색 끝까지 아래 소스로 대체 해보세요.
<script type="text/javascript" language="JavaScript" src="<?="$g4[path]/js/suggest.js"?>"></script>
<table cellpadding="0" cellspacing="0" width="160" border="0">
<tr>
<td width="100%" height="19" align="right" valign="middle"><table cellspacing="0" cellpadding="0" width="160" border="0">
<form action="javascript:fsearchbox_submit(document.fsearchbox);" method="get" name="fsearchbox" id="fsearchbox">
<input type="hidden" name="sfl" value="wr_subject" />
<input type="hidden" name="sop" value="and" />
<tr>
<td valign="top" align="left">
<input name="stx" onblur="this.style.background='#ffffff'" style="BORDER-RIGHT: rgb(204,204,204) 1px solid; BORDER-TOP: rgb(204,204,204) 1px solid; BACKGROUND-IMAGE: url(<?=$g4['../path']?>/img/btn_search_bg.gif); BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 200px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; HEIGHT: 19px" onfocus="this.style.background='#ffffff'" size="16" maxlength="15">
</td>
<td width="48" valign="top" align="left"><table cellpadding="0" cellspacing="0" width="42">
<tr>
<td width="5"> </td>
<td width="42" valign="bottom" height="19"><input name="image" type="image" src="<?=$g4[path]?>/img/btn_search_orange.gif" width="42" height="20" border="0" /></td>
</tr>
</table></td>
</tr>
</form>
</table>
<script language="JavaScript" type="text/javascript">
document.fsearchbox.stx.obj =
sug_set_properties(document.fsearchbox.stx, '<?=$g4[path]?>/skin/search/basic/suggest_search.php', true, false, true);
document.onload = document.fsearchbox.stx.focus();
function fsearchbox_submit(f)
{
if (f.stx.value == '')
{
alert("검색어를 입력하세요.");
f.stx.select();
f.stx.focus();
return;
}
/*
// 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
var cnt = 0;
for (var i=0; i<f.stx.value.length; i++)
{
if (f.stx.value.charAt(i) == ' ')
cnt++;
}
if (cnt > 1)
{
alert("빠른 검색을 위하여 검색어에 공백은 한개만 입력할 수 있습니다.");
f.stx.select();
f.stx.focus();
return;
}
*/
f.action = "<?=$g4[bbs_path]?>/search.php";
f.submit();
}
</script> </td>
</tr>
</table>
<!--검색 끝 -->
<script language="JavaScript">
document.fsearch.stx.obj =
sug_set_properties(document.fsearch.stx, '<?=$search_skin_path?>/suggest_search.php', true, false, true);
</script>
^^;; 잘 안되네요 ~