채택완료

검색 금지어 설정 코드 한번만 봐주실수있나요?

2019-09-27 (금) 19:04:06 4,254
|

답변 1개

채택된 답변
+20 포인트

id는..고유값인데 배열을 넣으니까 ???.....소스가..

점심때도 봤던 비슷한 질문 하신거 같아서.....꼭 필요하신 기능이신거 같아

일단은 게시판글쓰기 소스 가져다 간단하게 적용해본 소스입니다.

bbs/ajax.filter.php는 원본 안건드리고 그냥 검색창쪽 있는 소스만 수정했습니다.

Copy
<legend>사이트 내 전체검색</legend>
                <form name="fsearchbox" method="get" action="<?php echo G5_BBS_URL ?>/search.php" onsubmit="return fsearchbox_submit(this);">
                <input type="hidden" name="sfl" value="wr_subject||wr_content">
                <input type="hidden" name="sop" value="and">
                <label for="sch_stx" class="sound_only">검색어 필수</label>
                <input type="text" name="stx" id="sch_stx" maxlength="20" placeholder="검색어를 입력해주세요">
                <button type="submit" id="sch_submit" value="검색"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">검색</span></button>
                </form>

                <script>
                function fsearchbox_submit(f)
                {
                    var search = document.getElementById('sch_stx').value;                
                    $.ajax({
                        url: g5_bbs_url+"/ajax.filter.php",
                        type: "POST",
                        data: {
                            "content": search
                        },
                        dataType: "json",
                        async: false,
                        cache: false,
                        success: function(data, textStatus) {
                            content = data.content;
                        }
                    });


                    if (content) {
                        alert("금지단어('"+content+"')가 포함되어있습니다");
                        return false;
                    }
                    
                    if (f.stx.value.length < 2) {
                        alert("검색어는 두글자 이상 입력하십시오.");
                        f.stx.select();
                        f.stx.focus();
                        return false;
                    }

                    // 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
                    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 false;
                    }

                    return true;
                }
                </script>

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