검색어 자동완성 부탁드립니다. > 그누4 질문답변

그누4 질문답변

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

검색어 자동완성 부탁드립니다. 정보

검색어 자동완성 부탁드립니다.

본문

검색폼에 검색어 자동완성 기능을 넣고 싶은데.
 
전체검색 에 보니 자동완성 과 관련된 스킨이 있어서 전체검색에는 적용을 했거든요.
 
그런데 제 사이트에 메인화면에 검색폼이 하나 더 있습니다.
 
거기에도 검색어 자동완성 기능을 넣고 싶은서 소스 비교해서 넣어 보았는데 결국 실패에 실패를 거듭했습니다.
 
초보의 한계를 통감하면서 이렇게 글 남깁니다.
 
좀 도와주십시오  <-- 개미핡기 버젼 ^^
 
ㅠ..ㅠ
 
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;
    }
    /*
    // 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
    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");
?>
<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++;
            }
            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>
<!------------검색폼부분끝-------------->
<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>";
            }
        }
        ?>
        <?
        $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?>
</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">&nbsp;</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>
© SIRSOFT
현재 페이지 제일 처음으로