유아원님의 좀비사이트 같이 추천 다시 질문 드립니다. ^^;; > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

유아원님의 좀비사이트 같이 추천 다시 질문 드립니다. ^^;; 정보

유아원님의 좀비사이트 같이 추천 다시 질문 드립니다. ^^;;

본문

http://www.sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=153692&page=3

이궁 하나를 해결 하니 하나가 더 문제가 생기는 군요
위에 게시판에 질문을 남겼습니다 엔포님이 답변을 해주셔서 뷰페이지에서 추천은
해결 하였는데 코멘트 추천 비추천의 문제가 발생을 합니다.

엔포님의 답변으로
good.php
파일을 수정하시면 되는 거구요

view스킨에 아래와 같이 있다고 치면은

추천
<span id="count_good"><?=$write[wr_good]?></span>

비추천
<span id="count_nogood"><?=$write[wr_nogood]?></span>

여기에 있는 count_good 값만 수정하게끔
parent.document.getElementById('count_good').innerHTML = '숫자';

위 문장을 good.php 마지막부분에서 뿌려주면 되겠습니다^^

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

아래는 대략적인 설명임~
=============
good.php 파일에서 

      if ($good == "good")
            $status = "추천";
        else
            $status = "비추천";

위 부분을
$nfor = sql_fetch(" select * from {$g4[write_prefix]}{$bo_table} where wr_id = '$wr_id' "); 

        if ($good == "good") {
            $status = "추천";
echo "<script>document.getElementById('count_good').innerHTML = '$nfor[wr_good]';</script>";        } else{
            $status = "비추천";
echo "<script>document.getElementById('count_nogood').innerHTML = '$nfor[wr_nogood]';</script>";
}


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

이렇게 해서 해경을 하였습니다. 뷰페이지에서는 span 값이 변하지 않기 때문에 이렇게
해결이 가능 하지만 코멘트에는 span 값이 코멘트 값에 따라서 변경이 되기 때문에 

즉 코멘트 450번의 추천 비추천이라면
<span id="count_good_450">추천수</span>
<span id="count_nogood_450">비추천수</span>

즉 코멘트 451번의 추천 비추천이라면
<span id="count_good_451">추천수</span>
<span id="count_nogood_451">비추천수</span>

이렇게 변동이 되기 때문에 해당 commentgood.php 부분에
아래처럼 해 주었는데 자바스크립트 에러가 나네요 ^^;;

$nfor = sql_fetch(" select * from {$g4[write_prefix]}{$bo_table} where wr_id = '$wr_id' "); 

        if ($good == "good") {
            $status = "추천";
echo "<script>document.getElementById('count_good_$nfor[wr_id]').innerHTML = '$nfor[wr_good]';</script>";        } else{
            $status = "비추천";
echo "<script>document.getElementById('count_nogood_$nfor[wr_id]').innerHTML = '$nfor[wr_nogood]';</script>";
}

그래서 유아원님께 질문을 드려 봤는데
--------------------------------------------------------------------------------------
값을 넘길 때 코멘트의 아이디 값도 넘겨줍니다. 여기서 아이디 값은 span id 이지요. ^^
자세한 것은 좀비의 코멘트에 어떠한 식으로 추천 폼 전송을 넘기는지 보시면 될 것 같네요.
--------------------------------------------------------------------------------------

이렇게 답변을 주셨는데 아무리 혼자 해볼려고 해도 안되네요 ^^;; PHP 스쿨에서도 질문을 해봐도
안되고 .. ^^;;
코멘트에도 추천 비추천을 사용하기 때문에 뷰페이지와 함께 같이 고치려고 했더니 뷰페이지는
추천과 비추천의 span 값이 변하지 않기 때문에 되는데 코멘트 값에는 코멘트 마다 span 값이
해당 코멘트 id 값이 붙이 때문에 변동이 되기에 위에 부분처럼 해보니 안되던데

왜 안되는 걸까요 ?? ^^;;
  • 복사

댓글 전체

parent 가 빠졌는데 commentgood.php 파일 링크에 target=hiddenframe 이라고 안하셨나봐요?
자바스크립트 에러도 같이 알려주세요.

$nfor = sql_fetch(" select * from {$g4[write_prefix]}{$bo_table} where wr_id = '$wr_id' ");

if ($good == "good") {
      $status = "추천";
echo "<script>parent.document.getElementById('count_good_$nfor[wr_id]').innerHTML = '$nfor[wr_good]';</script>";        } else{
            $status = "비추천";
echo "<script>parent.document.getElementById('count_nogood_$nfor[wr_id]').innerHTML = '$nfor[wr_nogood]';</script>";
}
방긋님 답변 감사 드립니다. parent  부분은 제가 처리를 하였습니다 ^^
parent.document.getElementById('count_nogood_$nfor[wr_id]').innerHTML = '$nfor[wr_nogood]';
이렇게 되어 있습니다.
또한  target=hiddenframe 으로 잡혀 있습니다. ^^ 뷰페이지에서는 잘되나 뷰페이지는 span 값이
같기 때문에 잘되지만 코멘트는 저 span 아이디 값이 유동이기에 안되는거 같은데 ..
에코에서 찍어 보면 값은 잘 찍히는거 같은데 .. 희안하게 안되네요 ^^;;
자바 에러는 'parent.document.getElementById(...)'은(는) null 이거나 개체가 아닙니다
라는 에러가 발생을 합니다. ^^;;
아 제가 로컬에서 APM을 설치해서 작업을 하고 있는 지라 주소를 보여 드릴 수가 없어서 ;;
죄송합니다 ^^;;
근데 유아원님 말씀 대로면 .. span 값 아이디를 보내 줘야 저게 된다고 말씀 하신거 같은데 ..
그 방법을 모르겠네요 ^^;;
commentgood.php
파일을 수정하시면 되는 거구요

view_comment.skin.php 스킨에 아래와 같이 있다고 칩니다.

추천
<span id="count_good_<?=$comment_id?>"><?=$list[$i][wr_good]?></span>

비추천
<span id="count_nogood_<?=$comment_id?>"><?=$list[$i][wr_nogood]?></span>

여기에 있는 count_good_xxx 값만 수정하게끔
parent.document.getElementById('count_good_xxx').innerHTML = '숫자';

위 문장을 commentgood.php 마지막부분에서 뿌려주면 되겠습니다^^

commentgood.php 파일에서

      if ($good == "good")
            $status = "추천";
    else
          $status = "비추천";

위 부분을

$nfor = sql_fetch(" select * from {$g4[write_prefix]}{$bo_table} where wr_id = '$wr_id' ");

if ($good == "good") {
    $status = "추천";
    echo "<script>parent.document.getElementById('count_good_{$nfor[wr_id]}').innerHTML = '$nfor[wr_good]';</script>";       
}
else
{
    $status = "비추천";
    echo "<script>parent.document.getElementById('count_nogood_{$nfor[wr_id]}').innerHTML = '$nfor[wr_nogood]';</script>";
}
방긋님 ^^ 답변 감사 드립니다 ^^
현재 방긋님이 알려 주신 방법은 이미 저도 해본 방법 입니다. 현재도 그렇게 잡혀 있습니다. ^^;;
근데 자바 에러가 발생을 합니다.
저도 이렇게 하면 당연히 되는줄 알고 해본 방법이나 자바 스크립트 에러가 발생합니다.
'parent.document.getElementById(...)'은(는) null 이거나 개체가 아닙니다

똑같은 에러가 발생을 합니다. ^^;;
스킨을 보내주시면 수정해 드릴 수 있습니다. ^^
일단 위에서 말씀드린대로 테스트버전을 만들어 보았습니다.
소스코드를 올려놨으니 참고하세요.
http://dooraei.com/bbs/bbs/board.php?bo_table=test
답변 감사 드립니다. 방긋님 ^^ 근데 소스를 비교해 봐도 아무리 봐도 아무런 이상이 없는데
안된다는게 이상하네요 ^^; 방긋님 소스로 교체를 해봐도 에러가 발생을 합니다.
제가 좀더 알아 봐야 겠네요 ^^;; 이궁 희안하네요 ;;
소스는 방긋님껄로 교체를 해봐도 에러가 발생 합니다. ^^;;

근데 소스는 그누보드 기본 소스 입니다.
1. 페이지에 다수의 아이프레임 또는 프레임이 존재할 경우.

2. 1번 사항의 각각 페이지 속에 hiddenframe 이 있다면.

3. 추천버튼의 페이지에서 타켓을 hiddenframe 으로 정했다면.



쉽게 생각을 하면, 추천 페이지의 hiddenframe 으로 값이 넘어갈 것 같죠?

땡~! 입니다.

추천 페이지가 아닌, 첫번째의 아이프레임을 통해서 값이 넘어갑니다.

그럼으로 parent.document 으로 하였을 경우 되돌아오는 값은 첫번째 아이프레임에 표시가 됩니다.

parent.parent.document 으로 하면 되겠지만, 비효율적임으로 다음과 같이 하시길 권해드립니다.


히든 프레임을 사용하지 말고, 리플레이 프레임으로 하나 더 추가하여 사용하세요.

<iframe width="0" height="0" name="freplyiframe" style="display:none;"></iframe>



아래에서 확인버튼 눌러보세요~

http://zombi.kr/test/iframe/index.php
아 .. 무슨 말씀 이신지 알겠네요 ^^;; 이긍 .. 이렇게 하니깐 되는군요 ;; 아원님 답변 감사 드립니다. ^^

이궁 ... 이걸 몇일동안 고민했군요 ;;

유아원님에게도 방긋님에게도 정말 고개 숙여 감사 하다는 말씀을 드립니다 ('')(..)
© SIRSOFT
현재 페이지 제일 처음으로