댓글쓰기를 하면 댓글 수정이 안되고 밑에 새로 추가되어서 나옵니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
댓글쓰기를 하면 댓글 수정이 안되고 밑에 새로 추가되어서 나옵니다.

QA

댓글쓰기를 하면 댓글 수정이 안되고 밑에 새로 추가되어서 나옵니다.

본문


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
?>
 
<script>
// 글자수 제한
var char_min = parseInt(<?php echo $comment_min ?>); // 최소
var char_max = parseInt(<?php echo $comment_max ?>); // 최대
</script>
 
<!-- 댓글 시작 { -->
<section id="bo_vc">
    <h2><?php echo $lang_common_1174[$common_country_code] ?></h2>
    <?php
    $cmt_amt = count($list);
    for ($i=0; $i<$cmt_amt; $i++) {
        $comment_id = $list[$i]['wr_id'];
        $cmt_depth = ""; // 댓글단계
        $cmt_depth = strlen($list[$i]['wr_comment_reply']) * 20;
        $comment = $list[$i]['content'];
        /*
        if (strstr($list[$i]['wr_option'], "secret")) {
            $str = $str;
        }
        */
        $comment = preg_replace("/\[\<a\s.*href\=\"(http|https|ftp|mms)\:\/\/([^[:space:]]+)\.(mp3|wma|wmv|asf|asx|mpg|mpeg)\".*\<\/a\>\]/i", "<script>doc_write(obj_movie('$1://$2.$3'));</script>", $comment);
        $cmt_sv = $cmt_amt - $i + 1; // 댓글 헤더 z-index 재설정 ie8 이하 사이드뷰 겹침 문제 해결
     ?>
 
    <article id="c_<?php echo $comment_id ?>" <?php if ($cmt_depth) { ?>style="font-size:12px;margin-left:<?php echo $cmt_depth ?>px;border-top-color:#e0e0e0"<?php } ?>>
        <header style="z-index:<?php echo $cmt_sv; ?>;font-size:12px;">
            <h1><?php echo get_text($list[$i]['wr_name']); ?> reply</h1>
            <?php echo $list[$i]['name'] ?>
            <?php if ($cmt_depth) { ?><img src="<?php echo $board_skin_url ?>/img/icon_reply.gif" class="icon_reply" alt="<?php echo $lang_common_1176[$common_country_code] ?>"><?php } ?>
            <?php if ($is_ip_view) { ?>
            <?php echo $lang_common_1177[$common_country_code] ?>
            <span class="bo_vc_hdinfo"><?php echo $list[$i]['ip']; ?></span>
            <?php } ?>
            <?php echo $lang_common_1161[$common_country_code] ?>
            <span class="bo_vc_hdinfo"><time datetime="<?php echo date('Y-m-d\TH:i:s+09:00', strtotime($list[$i]['datetime'])) ?>"><?php echo $list[$i]['datetime'] ?></time></span>
            <?php
            include(G5_SNS_PATH.'/view_comment_list.sns.skin.php');
            ?>
        </header>
        <p style="font-size:12px;">
            <?php if (strstr($list[$i]['wr_option'], "secret")) { ?><img src="<?php echo $board_skin_url; ?>/img/icon_secret.gif" alt="<?php echo $lang_common_1132[$common_country_code] ?>"><?php } ?>
            <?php echo $comment ?>
        </p>
 
        <span id="edit_<?php echo $comment_id ?>"></span><!-- 수정 -->
        <span id="reply_<?php echo $comment_id ?>"></span><!-- 답변 -->
 
        <input type="hidden" value="<?php echo strstr($list[$i]['wr_option'],"secret") ?>" id="secret_comment_<?php echo $comment_id ?>">
        <textarea id="save_comment_<?php echo $comment_id ?>" style="display:none"><?php echo get_text($list[$i]['content1'], 0) ?></textarea>
 
        <?php if($list[$i]['is_reply'] || $list[$i]['is_edit'] || $list[$i]['is_del']) {
            $query_string = clean_query_string($_SERVER['QUERY_STRING']);
 
            if($w == 'cu') {
                $sql = " select wr_id, wr_content from $write_table where wr_id = '$c_id' and wr_is_comment = '1' ";
                $cmt = sql_fetch($sql);
                $c_wr_content = $cmt['wr_content'];
            }
 
            $c_reply_href = './board.php?'.$query_string.'&c_id='.$comment_id.'&w=c#bo_vc_w';
            $c_edit_href = './board.php?'.$query_string.'&c_id='.$comment_id.'&w=cu#bo_vc_w';
         ?>
        <footer>
            <ul class="bo_vc_act" style="font-size:14px;">
                <?php if ($list[$i]['is_reply']) { ?><li><a href="<?php echo $c_reply_href;  ?>" onclick="comment_box('<?php echo $comment_id ?>', 'c'); return false;"><font style="color:#262626; font-size:14px;"><?php echo $lang_common_1123[$common_country_code] ?></font></a></li><?php } ?>
                <?php if ($list[$i]['is_edit']) { ?><li><a href="<?php echo $c_edit_href;  ?>" onclick="comment_box('<?php echo $comment_id ?>', 'cu'); return false;"> <font style="color:#262626; font-size:14px;"><?php echo $lang_common_1122[$common_country_code] ?></font></a></li><?php } ?>
                <?php if ($list[$i]['is_del'])  { ?><li><a href="<?php echo $list[$i]['del_link'];  ?>" onclick="return comment_delete();"><font style="color:#262626; font-size:14px;"><?php echo $lang_common_9_1[$common_country_code] ?></font></a></li><?php } ?>
            </ul>
        </footer>
        <?php } ?>
    </article>
    <?php } ?>
    <?php if ($i == 0) { //댓글이 없다면 ?><p id="bo_vc_empty" style="font-size:14px;border:0px;padding:5px;"><?php echo $lang_common_1178[$common_country_code] ?></p><?php } ?>
 
</section>
<!-- } 댓글 끝 -->
 
<?php if ($is_comment_write) {
    if($w == '')
        $w = 'c';
?>
<!-- 댓글 쓰기 시작 { -->
<aside id="bo_vc_w">
    <h2><?php echo $lang_common_1120[$common_country_code] ?></h2>
    <form name="fviewcomment" action="./write_comment_update.php" onsubmit="return fviewcomment_submit(this);" method="post" autocomplete="off">
    <input type="hidden" name="w" value="<?php echo $w ?>" id="w">
    <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
    <input type="hidden" name="wr_id" value="<?php echo $wr_id ?>">
    <input type="hidden" name="comment_id" value="<?php echo $c_id ?>" id="comment_id">
    <input type="hidden" name="sca" value="<?php echo $sca ?>">
    <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
    <input type="hidden" name="stx" value="<?php echo $stx ?>">
    <input type="hidden" name="spt" value="<?php echo $spt ?>">
    <input type="hidden" name="page" value="<?php echo $page ?>">
    <input type="hidden" name="is_good" value="">
 
    <div class="tbl_frm01 tbl_wrap" style="padding:0;">
        <table border=0 cellpadding=0 cellspacing=0>
        <tbody>
        <?php if ($is_guest) { ?>
        <tr>
            <th scope="row" style="font-size:12px;border:0px;padding:5px;"><label for="wr_name"><?php echo $lang_common_75[$common_country_code] ?><strong class="sound_only"> <?php echo $lang_common_57[$common_country_code] ?></strong></label></th>
            <td style="font-size:12px;border:0px;"><input type="text" name="wr_name" value="<?php echo get_cookie("ck_sns_name"); ?>" id="wr_name" required class="frm_input required" size="5" maxLength="20"></td>
        </tr>
        <tr>
            <th scope="row" style="font-size:12px;padding:5px;border:0px;"><label for="wr_password"><?php echo $lang_common_207[$common_country_code] ?><strong class="sound_only"> <?php echo $lang_common_57[$common_country_code] ?></strong></label></th>
            <td style="font-size:12px;border:0px;"><input type="password" name="wr_password" id="wr_password" required class="frm_input required" size="10" maxLength="20"></td>
        </tr>
        <?php } ?>
        <!--tr>
            <th scope="row" style="font-size:12px;padding:5px;border:0px;"><label for="wr_secret"><?php echo $lang_common_1179[$common_country_code] ?></label></th>
            <td style="font-size:12px;border:0px;"><input type="checkbox" name="wr_secret" value="secret" id="wr_secret" style="font-size:12px;"></td>
        </tr-->
        <?php if ($is_guest) { ?>
        <tr>
            <th scope="row" style="font-size:12px;padding:5px;border:0px;"><?php echo $lang_common_1084[$common_country_code] ?></th>
            <td style="font-size:12px;border:0px;"><?php echo $captcha_html; ?></td>
        </tr>
        <?php } ?>
        <?php
        if($board['bo_use_sns'] && ($config['cf_facebook_appid'] || $config['cf_twitter_key'])) {
        ?>
        <tr>
            <th scope="row" style="font-size:12px;padding:5px;border:0px;">SNS <?php echo $lang_common_1180[$common_country_code] ?></th>
            <td id="bo_vc_send_sns" style="font-size:12px;border:0px;"></td>
        </tr>
        <?php
        }
        ?>
        <tr>
            <!--th scope="row" style="font-size:12px;padding:5px;border:0px;width:60px;" width=40><?php echo $lang_common_59[$common_country_code] ?></th-->
            <td style="font-size:12px;border:0px;" colspan=2>
                <?php if ($comment_min || $comment_max) { ?><strong id="char_cnt"><span id="char_count"></span><?php echo $lang_common_1181[$common_country_code] ?></strong><?php } ?>
                <textarea id="wr_content" name="wr_content" maxlength="10000" required class="required" rows="5" title="<?php echo $lang_common_59[$common_country_code] ?>"
                <?php if ($comment_min || $comment_max) { ?>onkeyup="check_byte('wr_content', 'char_count');"<?php } ?>><?php echo $c_wr_content;  ?></textarea>
                <?php if ($comment_min || $comment_max) { ?><script> check_byte('wr_content', 'char_count'); </script><?php } ?>
                <script>
                $("textarea#wr_content[maxlength]").live("keyup change", function() {
                    var str = $(this).val()
                    var mx = parseInt($(this).attr("maxlength"))
                    if (str.length > mx) {
                        $(this).val(str.substr(0, mx));
                        return false;
                    }
                });
                </script>
            </td>
        </tr>
        </tbody>
        </table>
    </div>
<center>
    <div class="btn_confirm" style="width:97%;margin:auto;">
        <input type="submit" id="btn_submit" class="btn_submit" value="<?php echo $lang_common_1182[$common_country_code] ?>" style="background-color:#fff220;">
    </div>
 
    </form>
</aside>
 
<script>
var save_before = '';
var save_html = document.getElementById('bo_vc_w').innerHTML;
 
function good_and_write()
{
    var f = document.fviewcomment;
    if (fviewcomment_submit(f)) {
        f.is_good.value = 1;
        f.submit();
    } else {
        f.is_good.value = 0;
    }
}
 
function fviewcomment_submit(f)
{
    var pattern = /(^\s*)|(\s*$)/g; // \s 공백 문자
 
    f.is_good.value = 0;
 
    var subject = "";
    var content = "";
    $.ajax({
        url: g5_bbs_url+"/ajax.filter.php",
        type: "POST",
        data: {
            "subject": "",
            "content": f.wr_content.value
        },
        dataType: "json",
        async: false,
        cache: false,
        success: function(data, textStatus) {
            subject = data.subject;
            content = data.content;
        }
    });
 
    if (content) {
        
		if(<?=$common_country_code?> == "kr") {		
		alert("<?php echo $lang_common_1183[$common_country_code] ?>('"+content+"')<?php echo $lang_common_1184[$common_country_code] ?>");
        f.wr_content.focus();
        return false;
		}else if(<?=$common_country_code?> == "cn") {		
		alert("<?php echo $lang_common_1183[$common_country_code] ?> 包括 ('"+content+"')<?php echo $lang_common_1184[$common_country_code] ?>");
        f.wr_content.focus();
        return false;
		}else if(<?=$common_country_code?> == "us") {		
		alert("<?php echo $lang_common_1183[$common_country_code] ?> It includes  ('"+content+"')<?php echo $lang_common_1184[$common_country_code] ?>");
        f.wr_content.focus();
        return false;
		}
    }
 
    // 양쪽 공백 없애기
    var pattern = /(^\s*)|(\s*$)/g; // \s 공백 문자
    document.getElementById('wr_content').value = document.getElementById('wr_content').value.replace(pattern, "");
    if (char_min > 0 || char_max > 0)
    {
        check_byte('wr_content', 'char_count');
        var cnt = parseInt(document.getElementById('char_count').innerHTML);
        if (char_min > 0 && char_min > cnt)
        {
             if(<?=$common_country_code?> == "kr") {		
					alert("<?php echo $lang_common_1185[$common_country_code] ?> "+char_min+"<?php echo $lang_common_1186[$common_country_code] ?>");
					return false;
				}else if(<?=$common_country_code?> == "cn") {		
					alert("<?php echo $lang_common_1185[$common_country_code] ?> 要寫 "+char_min+"<?php echo $lang_common_1186[$common_country_code] ?>");
					return false;
				}else if(<?=$common_country_code?> == "us") {		
					alert("<?php echo $lang_common_1185[$common_country_code] ?> At least  "+char_min+"<?php echo $lang_common_1186[$common_country_code] ?>");
					return false;
				}
			
        } else if (char_max > 0 && char_max < cnt)
        {
            
				if(<?=$common_country_code?> == "kr") {		
					alert("<?php echo $lang_common_1185[$common_country_code] ?> "+char_max+"<?php echo $lang_common_1187[$common_country_code] ?>");
					  return false;
				}else if(<?=$common_country_code?> == "cn") {		
					alert("<?php echo $lang_common_1185[$common_country_code] ?> 要寫 "+char_max+"<?php echo $lang_common_1187[$common_country_code] ?>");
					 return false;
				}else if(<?=$common_country_code?> == "us") {		
					alert("<?php echo $lang_common_1185[$common_country_code] ?> Below "+char_max+"<?php echo $lang_common_1187[$common_country_code] ?>");
					 return false;
				}
        }
    }
    else if (!document.getElementById('wr_content').value)
    {
        alert("<?php echo $lang_common_1188[$common_country_code] ?>");
        return false;
    }
 
    if (typeof(f.wr_name) != 'undefined')
    {
        f.wr_name.value = f.wr_name.value.replace(pattern, "");
        if (f.wr_name.value == '')
        {
            alert('<?php echo $lang_common_[$common_country_code] ?>');
            f.wr_name.focus();
            return false;
        }
    }
 
    if (typeof(f.wr_password) != 'undefined')
    {
        f.wr_password.value = f.wr_password.value.replace(pattern, "");
        if (f.wr_password.value == '')
        {
            alert('<?php echo $lang_common_1190[$common_country_code] ?>');
            f.wr_password.focus();
            return false;
        }
    }
 
    <?php if($is_guest) echo chk_captcha_js();  ?>
 
    document.getElementById("btn_submit").disabled = "disabled";
 
    return true;
}
 
function comment_box(comment_id, work)
{
    var el_id;
    // 댓글 아이디가 넘어오면 답변, 수정
    if (comment_id)
    {
        if (work == 'c')
            el_id = 'reply_' + comment_id;
        else
            el_id = 'edit_' + comment_id;
    }
    else
        el_id = 'bo_vc_w';
 
 
    if (save_before != el_id)
    {
        if (save_before)
        {
            document.getElementById(save_before).style.display = 'none';
            document.getElementById(save_before).innerHTML = '';
        }
 
        document.getElementById(el_id).style.display = '';
        document.getElementById(el_id).innerHTML = save_html;
 
        // 댓글 수정
        if (work == 'cu')
        {
            document.getElementById('wr_content').value = document.getElementById('save_comment_' + comment_id).value;
            if (typeof char_count != 'undefined')
                check_byte('wr_content', 'char_count');
            if (document.getElementById('secret_comment_'+comment_id).value)
                document.getElementById('wr_secret').checked = true;
            else
                document.getElementById('wr_secret').checked = false;
        }
 
        document.getElementById('comment_id').value = comment_id;
        document.getElementById('w').value = work;
 
        if(save_before)
            $("#captcha_reload").trigger("click");
 
        save_before = el_id;
    }
}
 
function comment_delete()
{
    return confirm("<?php echo $lang_common_1191[$common_country_code] ?>");
}
 
comment_box('', 'c'); // 댓글 입력폼이 보이도록 처리하기위해서 추가 (root님)
 
<?php if($board['bo_use_sns'] && ($config['cf_facebook_appid'] || $config['cf_twitter_key'])) { ?>
// sns 등록
$(function() {
    $("#bo_vc_send_sns").load(
        "<?php echo G5_SNS_URL; ?>/view_comment_write.sns.skin.php?bo_table=<?php echo $bo_table; ?>",
        function() {
            save_html = document.getElementById('bo_vc_w').innerHTML;
        }
    );
});
<?php } ?>
</script>
<?php } ?>
<!-- } 댓글 쓰기 끝 -->

 

/mobile/skin/board/basic/view_comment.skin.php 입니다.

 

댓글을 쓰고 수정을 누르면 페이지가 새로고침 되면서 댓글을 수정하면 해당 댓글이 수정되는것이 아니라 댓글이 그 밑에 한줄이 더 생기는 현상이 발생하고 있습니다.

 

해당 페이지 php에서는 딱히 수정한것이 없는데, 왜 이렇게 나오는걸까요..

고수님들 혹시 원인이나 해결방법 아시는분 좀 도와주시면 감사하겠습니다.

이 질문에 댓글 쓰기 :

답변 2

write_comment_update.php

페이지로 w값이 넘어갈때 제대로 안넘어가는거 같습니다.

위페이지에서 print_r($_POST); 값을 찍어보세여.

w값이 제대로 인식이안되 수정시 새로 코멘트가 등록이되는거같습니다 

document.getElementById('w').value = work;


이부분에서 'cu'값으로 셋팅이 안되기 때문인데

안되는 이유는 include한 파일중에서 id='w'로 정의된 오브젝트가

존재할 가능성이 큽니다 ID가 중복 된다는 거죠... (저의 경우에)


웹브라우저 소스보기해서 id="w" 를 검색해 보시기 바랍니다


 

답변을 작성하시기 전에 로그인 해주세요.
전체 60,048
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT