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

관리자페이지 포인트 지급시 아이디 자동완성

그누보드의 관리자 화면에서 포인트를 관리하는 페이지가 있습니다.

해당 부분에서 특정 회원에서 포인트를 지급 할 경우 아이디가 기억나지 않거나 할 때에

회원아이디 자동완성 기능을 추가해서 사용할 수 있습니다.

 

1994132643_1547129050.0226.jpg

 

1994132643_1547129151.5256.jpg

 

위와 같이 k만 회원아이디에 넣더라도 자동완성 기능으로 모든 회원을 검색할 수 있습니다.

 

우선 adm/point_list.php 파일에 다음과 같은 코드를 추가합니다.

[code]

<link href="http://code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel="stylesheet">
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>

 

<script>
//회원아이디 자동완성
    $("#mb_id").autocomplete({                    
        minLength: 1,
        maxHeight: 200,
        autoFocus:true,                    
        source: function(request, response) {
            $.ajax({
                url: "<?php echo G5_BBS_URL?>/ajax.member_chk.php?term="+$("#mb_id").val(),
                type: "GET",
                dataType: "json",
                success: function(data) {
                    response($.map(data, function(item) {
                        return {
                            label: item.mb_id + " [" + item.label+ "]",
                            mb_id: item.mb_id,
                            member_name : item.label
                        };
                    }));
                }
            });                        
        },
        select: function(event, ui) {                            
            $("#mb_id").val(ui.item.mb_id);
            
            console.log("Member Id : " + ui.item.mb_id);
            console.log("Member Name : " + ui.item.member_name);
            
            return false;
        },
        open: function(event, ui) {
            $("#mb_id").css("z-index", 1000);

        },
        focus: function (event, ui) {
           event.preventDefault(); // Prevent the default focus behavior.
        }
    });
</script>

[/code]

 

이후 bbs/ajax.member_chk.php 파일을 다음과 같이 생성합니다.

[code]

<?php
include_once('../common.php');


$search = trim(strip_tags($_GET['term']));

$sql = "select * from {$g5['member_table']} where mb_id like '$search%';";
$result = sql_query($sql);

for ($i=0; $row=sql_fetch_array($result); $i++) {
    $return_arr[] = array("mb_id" => $row['mb_id'], "label" => $row['mb_name']);
}

echo json_encode($return_arr);
?>

[/code]

 

해당 자동완성 기능을 응용하여 여러가지(검색어 등)를 구현할 수 있으니

처음 구현해보시는 분들은 이리저리 수정해가며 사용해보시면 도움될 것 같습니다.

최대한 간단하게 만든다고 만들었는데 수정해야할 것이 있다면 말씀부탁드립니다.

 

댓글 작성

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

로그인하기

댓글 16개

멋진팁이네요~ 공개해 주셔서 감사합니다.
멋진팁 감사합니다.
다른분들은 잘되시나요? 반응이없던데....그대로 소스 넣었는대..
본문에 point_list.php 에서 ajax.member_chk.php 인걸 ajax_member_chk.php 파일을 _ 에서 . 으로 이름 변경해서 올렸는대도 반응이없고 반대로 . 에서 _ 으로해도 반응이없고..
ajax.member_chk.php 파일로 생성하셔야 합니다. 오타가 있었네요 ㅠㅠ
유용한 팁 입니다. 감사합니다.
유용한 팁인데... 그누 5.3 기본버전에서도 저거 그대로 넣었는데 아무 반응이 없네요 ㅠ_ㅠ
[http://sir.kr/data/editor/1901/52996b4b54d121a3cca171bf452f0a62_1547430864_8715.png]
5.3최신버전에서도 문제없이 잘 되는 것 확인 하고 업로드를 했는데
혹시라도 안되시면 script 부분이 너무 위에 있어서 그럴수 있으니
제일 아래쪽으로 넣어보셔요
좋은 팁 감사합니다!!
유용한 팁 입니다. 감사합니다.
와..감사합니다 적용해봐야겠습니다
혹시 닉네임을 입력시에도 뜨는건가요?
이기능을 메인검색에 응용할려고 삽질하는데 안되네요 ㅠㅠ
검색에 적용하는 방법이나 팁을 가르쳐 주시면 감사하겟읍니다
신기한 팁 공유해주셔서 감사합니다. ^^

PS.
작동 않는 분은 아래 코드 수정

1.
php 단축코드 사용 적용 안 된 분 경우

수정 전 : <?echo
수정 후 : <?php echo

2.
https 적용한 뷴 경우

수정 전 : http
수정 후 : https
하라는대로 했는데 안나옵니다...
좋은 팁 감사합니다.
이 팁을 응용해서 쪽지보내기 아이디 입력창을 닉네임 입력하기로 적용했습니다.
물론 정리된 자료는 팁게시판에 등록하였으니 필요하신분 검색해서 이용하세요

게시글 목록

번호 제목
24318
24317
24315
24309
24294
24293
24277
24262
24260
24253
24251
24236
24233
24228
24226
24221
24214
24203
24201
24199
24196
24195
24194
24192
24191
24187
24185
24183
24172
24168