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

댓글 등록 버튼으로 생성한 댓글들에 버튼 기능이 제대로 작동하지 않습니다ㅜ 채택완료

10billgod 2년 전 조회 1,509

오늘은 비가 생각보다 오랫동안 오네요... 좀만하고 자려했는데

문제가 생겨 5시간동안 붙잡고 있는데 도저히 감이 안잡혀서 고수님들께 팁을 얻고자 질문남깁니다

 

먼제 제가 댓글 등록 버튼 하나를 놓고

그 버튼을 클릭하면 로그인한 계정의 업체명과 클릭하면 정보를 볼수 있는 버튼이 등록됩니다

그러한 댓글들을 여러계정으로 생성하면 view_comment에서는 업체명이 보이는데

문제는 각각 생성된 버튼들을 클릭했을때 자바스크립트로 팝업 호출되게끔 해놓았는데

맨처음 생성한 업체의 정보만 나옵니다...

두번째,세번째,네번째....등 버튼을 눌러도 처음 등록한 업체 정보만 나오는데 버튼을 for문 돌려봐도 안되고..

 

코드한번만 살펴봐주시고 팁 좀 부탁드리겠습니다 고수님들

댓글 남겨주실 모든 분들께 미리 감사합니다

 

 

 

 

 

--------------------------------

view_comment.skin.php

 

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

?>

 

https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css" integrity="sha512-MV7K8+y+gLIBoVD59lQIYicR65iaqukzvf/nwasF0nqhPay5w/9lJmVM2hMDcnK1OnMGCdVK+iQrJ7lzPJQd1w==" crossorigin="anonymous" referrerpolicy="no-referrer" />

 

 

상담가능 업체정보

   

댓글목록

   

   

    $cmt_amt = count($list);

    for ($i=0; $i<$cmt_amt; $i++) {

        $comment_id = $list[$i]['wr_id'];

        $cmt_depth = strlen($list[$i]['wr_comment_reply']) * 50;

        $comment = $list[$i]['content'];

        $mb = get_member($list[$i]['mb_id']);

        /*

        if (strstr($list[$i]['wr_option'], "secret")) {

            $str = $str;

        }

        */

        $comment = preg_replace("/\[\\]/i", "", $comment);

        $cmt_sv = $cmt_amt - $i + 1; // 댓글 헤더 z-index 재설정 ie8 이하 사이드뷰 겹침 문제 해결

        $c_reply_href = $comment_common_url.'&c_id='.$comment_id.'&w=c#bo_vc_w';

        $c_edit_href = $comment_common_url.'&c_id='.$comment_id.'&w=cu#bo_vc_w';

        $is_comment_reply_edit = ($list[$i]['is_reply'] || $list[$i]['is_edit'] || $list[$i]['is_del']) ? 1 : 0;

    ?>

 

   

style="margin-left:px;border-top-color:#e0e0e0">

       

           

               

조명 업체 등록 현황

               

님의 댓글의 댓글

               

               

                   

                       

                   

               

                작성일

               

               

                include(G5_SNS_PATH.'/view_comment_list.sns.skin.php');

                ?>

           

   

           

           

               

               

                    if($w == 'cu') {

                        $sql = " select wr_id, wr_content, mb_id from $write_table where wr_id = '$c_id' and wr_is_comment = '1' ";

                        $cmt = sql_fetch($sql);

                        if (isset($cmt)) {

                            if (!($is_admin || ($member['mb_id'] == $cmt['mb_id'] && $cmt['mb_id']))) {

                                $cmt['wr_content'] = '';

                            }

                            $c_wr_content = $cmt['wr_content'];

                        }

                    }

                ?>

               

           

           

           

           

   

            " id="secret_comment_">

           

       

       

       

           

           

                   

  • 답변
  •                

  • 수정
  •                

  • 삭제
  •            

       

       

       

   

   

   

   

 

    if($w == '')

        $w = 'c';

?>

   

 

 

 

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

답변 3개

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

php 에서 루프로 복수개의 엘리먼트를 생성하는데

버튼을 제외한 나머지 제어는 단수 형태로 해서 발생하는 문제 같습니다.

 

간략하게 동작 부분만 재구성한 소스입니다.

</p>

<p><style>

.popup_wrap {

    display: none;

    position: absolute;

    top: 20%;

    left: 20%;

    width: 10em;

    height: 10em;

}

.backg2 {

    background-color: #000;

    width: 100%;

    height: 100%;

    color: #fff;

}

.close1 {

    position: absolute;

    top: 0;

    right: 0.5em;

    color: #fff;

    cursor: pointer;

}

</style></p>

<p><button class="brand_info">a</button>

<div class="popup_wrap" style="left: 20%; top: 20%;">

    <div class="backg2">aa</div>

    <span class="close1">x (a)</span>

</div></p>

<p><button class="brand_info">b</button>

<div class="popup_wrap" style="left: 30%; top: 30%;">

    <div class="backg2">bb</div>

    <span class="close1">x (b)</span>

</div></p>

<p><button class="brand_info">c</button>

<div class="popup_wrap" style="left: 40%; top: 40%;">

    <div class="backg2">cc</div>

    <span class="close1">x (c)</span>

</div></p>

<p><button class="brand_info">d</button>

<div class="popup_wrap" style="left: 50%; top: 50%;">

    <div class="backg2">dd</div>

    <span class="close1">x (d)</span>

</div></p>

<p><script>

const brandBtn = document.querySelectorAll(".brand_info");

const popup = document.querySelectorAll(".popup_wrap");

const closePopup = document.querySelectorAll(".close1");

const blackBackColor2 = document.querySelectorAll(".backg2");</p>

<p>function toggle_popup(i) {

    if(popup[i].style.display != "block"){

        popup[i].style.display = "block";

        blackBackColor2[i].style.display ="block";

    } else {

        popup[i].style.display = "none";

    }

}</p>

<p>function close_popup_back(i) {

    popup[i].style.display = "none";

    blackBackColor2[i].style.display ="none";

}</p>

<p>if (brandBtn.length == popup.length && popup.length == closePopup.length && closePopup.length == blackBackColor2.length) {

    for(let i=0; i<brandBtn.length; i++) {

        brandBtn[i].addEventListener('click', ()=>{

            toggle_popup(i);

        });

        closePopup[i].addEventListener('click', ()=>{

            close_popup_back(i);

        });

        blackBackColor2[i].addEventListener('click', ()=>{

            close_popup_back(i);

        });

    }

}</p>

<p>// closePopup.addEventListener("click", offPopup);

// blackBackColor2.addEventListener("click", offPopupBack);

</script></p>

<p>

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

답변에 대한 댓글 2개

s
sinbi
2년 전
결과보기: https://codepen.io/sinbi/pen/eYjEJEj
1
10billgod
2년 전
배르만님 덕분에 각 버튼이 정상 작동합니다
다시 한번 감사합니다~

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

10billgod
2년 전

sinbi님 친절한 댓글 감사합니다~

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

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

2년 전

</p>

<p><script src="<a href="https://code.jquery.com/jquery-1.12.4.min.js"></script>" target="_blank" rel="noopener noreferrer">https://code.jquery.com/jquery-1.12.4.min.js"></script></a></p>

<p><button type="button" class="btn_cm_opt"><span class="sound_only">댓글 옵션1</span></button>

<div id="company0" style="display:none;">111111111111<button type="button" class="close">닫기</button></div>

<button type="button" class="btn_cm_opt"><span class="sound_only">댓글 옵션2</span></button>

<div id="company1" style="display:none;">222222222222<button type="button" class="close">닫기</button></div>

<button type="button" class="btn_cm_opt"><span class="sound_only">댓글 옵션3</span></button>

<div id="company2" style="display:none;">333333333333<button type="button" class="close">닫기</button></div>

<button type="button" class="btn_cm_opt"><span class="sound_only">댓글 옵션4</span></button>

<div id="company3" style="display:none;">444444444444<button type="button" class="close">닫기</button></div>

<button type="button" class="btn_cm_opt"><span class="sound_only">댓글 옵션5</span></button>

<div id="company4" style="display:none;">5555555555<button type="button" class="close">닫기</button></div></p>

<p>

<script>

    $(document).ready(function(){

        $('.btn_cm_opt').each(function(i){

            $(this).click(function(e){

                $('#company'+i).css('display', 'block');

            });

        });

        $('.close').each(function(i){

            $(this).click(function(e){

                $('#company'+i).css('display', 'none');

            });

        });

    });

</script></p>

<p>

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

답변에 대한 댓글 2개

s
sinbi
2년 전
결과보기: https://codepen.io/sinbi/pen/NWBvxvj
1
10billgod
2년 전
개노미님! 매번 팁 주셔서 감사합니다!

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

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

로그인