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

버튼 클릭시 on/off 가능하도록 만들고 있습니다. 채택완료

용미엘 2년 전 조회 1,273

안녕하세요?

php공부중인데요,

 

그누보드 갤러리 list.skin.php 에서 카테고리 위에 현재 게시중인지 아닌지 구분해서 보여주는 버튼을 만들었습니다.

여분필드를 사용해서 wr_2 = '1' 이면 게시중 아닐경우는 미게시중으로 표시되도록 해두었는데요, 글 수정에서 해당값을 수정할수는 있지만 리스트로 뿌려지는곳에서 게시중일경우 게시중 버튼을 클릭하면 미게시중 으로 db값을 변경하고 싶은데 조금 어렵네요 ㅎ;

 

클릭 시 wr_2 의 값을 1 -> 2 -> 1 -> 2 이렇게 변경되게하려면 어떤방법이 있을까요?

조언부탁드립니다.

감사합니다.

 

</p>

<p><div style="margin-bottom:6px;">

     <?php if($list[$i]['wr_2'] == '1') {?>

          <p class="bo_cate_link">사용중</p>

          <?php }else{ ?>

          <p class="bo_cate_link_no">미사용중</p>

      <?php } ?>

</div></p>

<p>

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

답변 2개

채택된 답변
+20 포인트
2년 전

* list.skin.php 해당 소스 변경

<div style="margin-bottom:6px;">

    <?php

    $t_class = ($list[$i]['wr_2'] == '1') ? 'bo_cate_link' : 'bo_cate_link_no';

    $t_txt = ($list[$i]['wr_2'] == '1') ? '사용중' : '미사용중';

    ?>

    <p class="<?php echo $t_class ?>" data-id="<?php echo $list[$i]['wr_id'] ?>"><?php echo $t_txt ?></p>

</div>

 

* list.skin.php 리스트 출력문 아래에 추가

<script>

$('[class^="bo_cate_link"]').on('click', function() {

    let _class = $(this).attr('class');

    let _id = $(this).data('id');            

    let _wr_2 = _class == 'bo_cate_link' ? "0" : "1";</p>

<p> </p>

<p>    $.ajax({

        type: "POST",

        url: "<?php echo $board_skin_url ?>/ajax.change.php",

        data: {bo_table : g5_bo_table, wr_id : _id, wr_2 : _wr_2 },</p>

<p>        context: this,

        success: function(data) {

            if (data == "1") {

                if (_class == 'bo_cate_link') {

                    $(this).removeClass('bo_cate_link');

                    $(this).addClass('bo_cate_link_no');

                    $(this).text('미사용중');

                } else if (_class == 'bo_cate_link_no') {

                    $(this).removeClass('bo_cate_link_no');

                    $(this).addClass('bo_cate_link');

                    $(this).text('사용중');

                }                

            }                

        }

    });

});

</script>

 

* 스킨디렉토리에 ajax.change.php 생성

<?php

include_once('../../../common.php');</p>

<p> </p>

<p>if ($bo_table && $wr_id) {

    $write_table = $g5['write_prefix'] . $bo_table;

    $sql = "

        update {$write_table}

             set wr_2 = '{$wr_2}'

         where wr_id = '{$wr_id}'

    ";

    $result = sql_query($sql);

    echo $result;

}

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

용미엘
2년 전
시간내주셔서 감사합니다.
알려주신 방법으로 너무 잘 되네요. 공부하겠습니다.

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

글을 쓰는중 이런거 표현하려고요?

로그인 후 평가할 수 있습니다

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

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

로그인