textarea건 다시 질문 드립니다..ㅠㅠ 정보
textarea건 다시 질문 드립니다..ㅠㅠ본문
테스트 아이디/비번 : aaaa (이 계정은 제가 따로 작업용으로 쓰는 계정입니다)
할 수 없이 작업 중인 게시판을 링크걸었습니다.
지금 외국용 사이트에 쓰일 포럼형 게시판을 작업하는 중입니다.
의뢰받은 데모사이트의 게시판의 댓글 시스템이 대충 저런 방식입니다.
그러니까 그누보드처럼 댓글에 답댓글을 달면 트리구조로 붙는 게 아니라 원댓글을 포함한 박스가 답댓글에 포함되어서 시간순으로 출력됩니다.
헐랭이님이 최근 올리신 악플러 신고 소스로 원댓글을 포함한 답댓글 기능까지는 구현했습니다. (그누보드의 기존 답댓글 기능은 아닙니다)
그런데 답댓글이 중복될수록 입력폼 안에 html소스(원댓글을 포함한 박스)도 계속 누적이 되는 겁니다. 그래서 나중에는 입력폼을 한참 스크롤다운해야 글을 올릴 수 있고 자칫 원댓글들 속에 글을 입력하게 되는 수도 있겠더군요.
그래서 자동으로 입력창이 늘어나는 자바스크립트도 써봤는데 웬지 미흡하고.......
아무튼 별별 수를 다 써다가 요 앞에 질문을 올린 겁니다.
제가 만들고 있는 게시판을 보시면 좀 더 적절한 조언이 있지 않을까 해서 링크를 걸었습니다.
그럼 다시 질문 드립니다^^;;;
- textarea에 글쓰기 할 때, 보이지 않는 어떤 문구를 입력해놓고 글을 올린 후 본문에서 그 문구가 나타나게 할 수 있는 방법 없을까요? 따로 필드를 써서 히든값으로 전송하는 방식은 아닙니다.
- 이게 안되면 미리 특정문구가 들어있는 textarea를 열었을 때 스크롤바가 자동으로 맨 하단으로 내려지고 커서가 깜빡이게 하는 방법이라도....ㅜㅜ (커서는 안되더라도 스크롤바라도 미리 내려가 있기만 하면 됩니다.)
그 외 천상재회님 말씀처럼 원댓글과 답댓글을 따로 전송하는 방식도 생각해봤는데 중복되는 답댓글일 경우에 복잡한 문제가 발생하더군요.. (타임머신의 구조적 모순 비슷한..-_-;;)
혹시 이런 방식의 해결책 있으시면 대환영입니다~~^^
댓글 전체

이것을 구현 하시려는 것인가요?
http://www.triplecubic.com/triple_v0.011/bbs/board.php?bo_table=test12
해당필드에 포커스를 주시면 됩니다.
예로 글쓰기 폼에 내용부분을 아래와 같이 하고
<textarea>요기가 원하는 임의의 인서트문<?=$content?</textarea>
아래는 스크립트 문입니다...
with (document.fwrite)
{
wr_content.focus(); //요기부분
wr_content.value = wr_content.value; //요기부분
/* 아래주석처리
if (typeof(wr_name) != "undefined")
wr_name.focus();
else if (typeof(wr_subject) != "undefined")
wr_subject.focus();
else if (typeof(wr_content) != "undefined")
wr_content.focus();
if (typeof(ca_name) != "undefined")
if (w.value == "u")
ca_name.value = "<?=$write[ca_name]?>";
*/
}
위의 경우 제목 입력후 탭키를 누르면 내용의
요기가 원하는 임의의 인서트문* <-- 백설표 위치로 커서가 옵니다.
여기서 (요기가 원하는 임의의 인서트문)는 위의 텍스트에어리어에서 정의한 글 입니다. 이미 입력되어 있겠지요.
http://www.triplecubic.com/triple_v0.011/bbs/board.php?bo_table=test12
해당필드에 포커스를 주시면 됩니다.
예로 글쓰기 폼에 내용부분을 아래와 같이 하고
<textarea>요기가 원하는 임의의 인서트문<?=$content?</textarea>
아래는 스크립트 문입니다...
with (document.fwrite)
{
wr_content.focus(); //요기부분
wr_content.value = wr_content.value; //요기부분
/* 아래주석처리
if (typeof(wr_name) != "undefined")
wr_name.focus();
else if (typeof(wr_subject) != "undefined")
wr_subject.focus();
else if (typeof(wr_content) != "undefined")
wr_content.focus();
if (typeof(ca_name) != "undefined")
if (w.value == "u")
ca_name.value = "<?=$write[ca_name]?>";
*/
}
위의 경우 제목 입력후 탭키를 누르면 내용의
요기가 원하는 임의의 인서트문* <-- 백설표 위치로 커서가 옵니다.
여기서 (요기가 원하는 임의의 인서트문)는 위의 텍스트에어리어에서 정의한 글 입니다. 이미 입력되어 있겠지요.
아이구 이렇게 늦게까지 감사합니다^^
오늘 늦잠을 잤더니 이제야 답글을 다는군요. 나중에 님의 소스를 적용해보고 다시 답변드리겠습니다^^;
오늘 늦잠을 잤더니 이제야 답글을 다는군요. 나중에 님의 소스를 적용해보고 다시 답변드리겠습니다^^;
2번의 참조..정도의 아이디를 내자면.. 흠흠..
게시물이 클릭되어 출력될때.. contents 안에 특정문자가 있는지 검색해서 어떤변수에 저장을 시킵니다.
있으면 1 없으면 0
0이면 그냥 그러려니 하고 보이고. .1이면..
스크립트중에 document.complate인가? 그런게 있습니다. 화면에 모든내용이 출력되었을때 발생하는 이벤트죠.
여기서.. 만약 특정변수가 1이었다면. 화면맨밑에 작은이미지(1px정도)를 하나 둡니다.(tail.php or tail.sub.php에)
그리곤 거기에 포커스를 줘버리는겁니다. -0-;;
그럼 특정문자가 있어서 맨밑으로 스크롤 된것같은 이벤트..효과가 (쿨럭 -0-;) ㅎㅎ
참고를. ㅎ
게시물이 클릭되어 출력될때.. contents 안에 특정문자가 있는지 검색해서 어떤변수에 저장을 시킵니다.
있으면 1 없으면 0
0이면 그냥 그러려니 하고 보이고. .1이면..
스크립트중에 document.complate인가? 그런게 있습니다. 화면에 모든내용이 출력되었을때 발생하는 이벤트죠.
여기서.. 만약 특정변수가 1이었다면. 화면맨밑에 작은이미지(1px정도)를 하나 둡니다.(tail.php or tail.sub.php에)
그리곤 거기에 포커스를 줘버리는겁니다. -0-;;
그럼 특정문자가 있어서 맨밑으로 스크롤 된것같은 이벤트..효과가 (쿨럭 -0-;) ㅎㅎ
참고를. ㅎ
저도 대충 그런 생각을 하긴 했는데 워낙 기초가 없어서 실제 소스는 잘 몰랐네요. 아무튼 감사드립니다^^
코멘트에서의 textarea죠? 글입력시에는 없는걸 글 입력후 나오는건가요?
1. write_comment_update.head.skin.php 에서 $wr_content값을 변경하는겁니다. 물론 조건은 $w=='c' 일 경우에만 한다면 처음에 쓸때(수정이 아닐경우) 만 내용이 첨부되겠네요
2. 본문은 그대로 두고 출력할때만 <?"추가입력글"?><?=get_text($list[$i][wr_content], 0)?> 로 바꾸시면 내용은 그대로지만 출력문은 추가글을 더해서 나올텐데요. 단 수정눌르면 이게 추가글이 같이 포함되무로 지우실려면
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');
}
에서 입력내용을 trim계열이었나? 하여튼 그런걸로 자르시면 되지 않을까 싶네요
3. 추가입력글 자체를 따로 분리해서 여분필드 wr_1 같은데다 입력하셨다가 출력시 같이 출력 수정시에는 이것만큼 빼시면 될듯하네요.
사실 어떤걸 원하시는지 잘 모르겠습니다;;
1. write_comment_update.head.skin.php 에서 $wr_content값을 변경하는겁니다. 물론 조건은 $w=='c' 일 경우에만 한다면 처음에 쓸때(수정이 아닐경우) 만 내용이 첨부되겠네요
2. 본문은 그대로 두고 출력할때만 <?"추가입력글"?><?=get_text($list[$i][wr_content], 0)?> 로 바꾸시면 내용은 그대로지만 출력문은 추가글을 더해서 나올텐데요. 단 수정눌르면 이게 추가글이 같이 포함되무로 지우실려면
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');
}
에서 입력내용을 trim계열이었나? 하여튼 그런걸로 자르시면 되지 않을까 싶네요
3. 추가입력글 자체를 따로 분리해서 여분필드 wr_1 같은데다 입력하셨다가 출력시 같이 출력 수정시에는 이것만큼 빼시면 될듯하네요.
사실 어떤걸 원하시는지 잘 모르겠습니다;;
그누에 이미 그런 배려가 있었는지는 몰랐군요! 아이구 감사합니다. 물론 해봐야 하겠지만 제가 원하는 답변일 가능성이 상당히 크네요.
1,2,3 이 다 해당이 되구요, 첨가하자면 수정일 때도 나와도 됩니다. 그리고 사실 진짜 원하는 건 답변글일 때 나와주는 거죠. 답댓글을 달 때 원댓글을 포함시키려고 하는 거거든요.
아무튼 감사드리고 지금 바로 적용해보고 다시 답변드리겠습니다^^
1,2,3 이 다 해당이 되구요, 첨가하자면 수정일 때도 나와도 됩니다. 그리고 사실 진짜 원하는 건 답변글일 때 나와주는 거죠. 답댓글을 달 때 원댓글을 포함시키려고 하는 거거든요.
아무튼 감사드리고 지금 바로 적용해보고 다시 답변드리겠습니다^^
근데 write_comment_update.head.skin.php 파일이 어디 있는지.........;;;
버전에 따라 다른데 예전스킨들에선 없을겁니다 그누가 버젼업되면서 생긴겁니다.
bbs/write_comment_update.php 에서 초반부에 부르게 되어있습니다. 없다면 코드 넣으셔도 될겁니다 최신버젼에는 나오는거니까요 위에 파일은 해당스킨에서 만들어서 넣으시면 될테구요
코드는 @include_once("$board_skin_path/write_comment_update.head.skin.php"); 입니다^^
bbs/write_comment_update.php 에서 초반부에 부르게 되어있습니다. 없다면 코드 넣으셔도 될겁니다 최신버젼에는 나오는거니까요 위에 파일은 해당스킨에서 만들어서 넣으시면 될테구요
코드는 @include_once("$board_skin_path/write_comment_update.head.skin.php"); 입니다^^
아! 그렇군요^^ 감사합니다~
흐흐~~ 이해가 안가지만... ㅋ
입력하다 아래로?? 포커스도 아니고...
암튼 텍스트에어리어에서 젤 아래로 내려가는 스크립트 입니다.
폼에서 상하 onclick 과 스크롤바와 그 옆의 마찬가지 onmouseover event ...
<script language="JavaScript">
<!--
var sRepeat=null;
function doScrollerIE(dir, src, amount) {
if (amount==null) amount=10;
if (dir=="up")
document.all[src].scrollTop-=amount;
else
document.all[src].scrollTop+=amount;
if (sRepeat==null)
sRepeat = setInterval("doScrollerIE('" + dir + "','" + src + "'," + amount + ")",10);
return false
}
window.document.onmouseout = new Function("clearInterval(sRepeat);sRepeat=null");
window.document.ondragstart = new Function("return false");
//-->
</script>
<table width="600" border="0" cellspacing="0" cellpadding="0" >
<tr>
<td>
<a href="#" onclick="javascript:doScrollerIE('up','s1',10000)">위로</a>
<a href="#" onclick="javascript:doScrollerIE('down','s1',10000)">아래로</a>
</td>
</tr>
<tr>
<td width="400" height="234" valign="top">
<textarea name="txt_aaa" rows="15" cols="60" ID="s1" STYLE="width:600; height: 234; ">
<font face="돋움" size="2"><font color="navy" size="3"><b>오만한 기업들을 위한 CRM 기초 강좌</b></font><br><img src="http://korea.internet.com/images/6x6.gif" height="7"><br><font class="contents"> <img src="http://korea.internet.com/images/susan.gif" border="0" align="left">
테스트 아이디/비번 : aaaa (이 계정은 제가 따로 작업용으로 쓰는 계정입니다)
할 수 없이 작업 중인 게시판을 링크걸었습니다.
지금 외국용 사이트에 쓰일 포럼형 게시판을 작업하는 중입니다.
의뢰받은 데모사이트의 게시판의 댓글 시스템이 대충 저런 방식입니다.
데모사이트 : http://www.pistonheads.com/gassing/
그러니까 그누보드처럼 댓글에 답댓글을 달면 트리구조로 붙는 게 아니라 원댓글을 포함한 박스가 답댓글에 포함되어서 시간순으로 출력됩니다.
헐랭이님이 최근 올리신 악플러 신고 소스로 원댓글을 포함한 답댓글 기능까지는 구현했습니다. (그누보드의 기존 답댓글 기능은 아닙니다)
그런데 답댓글이 중복될수록 입력폼 안에 html소스(원댓글을 포함한 박스)도 계속 누적이 되는 겁니다. 그래서 나중에는 입력폼을 한참 스크롤다운해야 글을 올릴 수 있고 자칫 원댓글들 속에 글을 입력하게 되는 수도 있겠더군요.
그래서 자동으로 입력창이 늘어나는 자바스크립트도 써봤는데 웬지 미흡하고.......
아무튼 별별 수를 다 써다가 요 앞에 질문을 올린 겁니다.
제가 만들고 있는 게시판을 보시면 좀 더 적절한 조언이 있지 않을까 해서 링크를 걸었습니다.
그럼 다시 질문 드립니다^^;;;
textarea에 글쓰기 할 때, 보이지 않는 어떤 문구를 입력해놓고 글을 올린 후 본문에서 그 문구가 나타나게 할 수 있는 방법 없을까요? 따로 필드를 써서 히든값으로 전송하는 방식은 아닙니다.
이게 안되면 미리 특정문구가 들어있는 textarea를 열었을 때 스크롤바가 자동으로 맨 하단으로 내려지고 커서가 깜빡이게 하는 방법이라도....ㅜㅜ (커서는 안되더라도 스크롤바라도 미리 내려가 있기만 하면 됩니다.)
그 외 천상재회님 말씀처럼 원댓글과 답댓글을 따로 전송하는 방식도 생각해봤는데 중복되는 답댓글일 경우에 복잡한 문제가 발생하더군요.. (타임머신의 구조적 모순 비슷한..-_-;;)
혹시 이런 방식의 해결책 있으시면 대환영입니다~~^^
</textarea>
</td>
<td width="13" height="13"><a style="text-indent: 0px;" onMouseOver="return doScrollerIE('up','s1',10000)" onMouseOut="clearInterval(sRepeat)"href="#"><img src="image/javascript_scroll_up.gif" width="13" height="13" border="0"></a><br><img src="http://korea.internet.com/images/6x6..gif" width="13" height="208"><br><a style="text-indent: 0px;" onMouseOver="return doScrollerIE('down','s1',10000)" onMouseOut="clearInterval(sRepeat)" href="#"><img src="image/javascript_scroll_down.gif" width="13" height="13" border="0"></a>
</td>
</tr>
</table>
입력하다 아래로?? 포커스도 아니고...
암튼 텍스트에어리어에서 젤 아래로 내려가는 스크립트 입니다.
폼에서 상하 onclick 과 스크롤바와 그 옆의 마찬가지 onmouseover event ...
<script language="JavaScript">
<!--
var sRepeat=null;
function doScrollerIE(dir, src, amount) {
if (amount==null) amount=10;
if (dir=="up")
document.all[src].scrollTop-=amount;
else
document.all[src].scrollTop+=amount;
if (sRepeat==null)
sRepeat = setInterval("doScrollerIE('" + dir + "','" + src + "'," + amount + ")",10);
return false
}
window.document.onmouseout = new Function("clearInterval(sRepeat);sRepeat=null");
window.document.ondragstart = new Function("return false");
//-->
</script>
<table width="600" border="0" cellspacing="0" cellpadding="0" >
<tr>
<td>
<a href="#" onclick="javascript:doScrollerIE('up','s1',10000)">위로</a>
<a href="#" onclick="javascript:doScrollerIE('down','s1',10000)">아래로</a>
</td>
</tr>
<tr>
<td width="400" height="234" valign="top">
<textarea name="txt_aaa" rows="15" cols="60" ID="s1" STYLE="width:600; height: 234; ">
<font face="돋움" size="2"><font color="navy" size="3"><b>오만한 기업들을 위한 CRM 기초 강좌</b></font><br><img src="http://korea.internet.com/images/6x6.gif" height="7"><br><font class="contents"> <img src="http://korea.internet.com/images/susan.gif" border="0" align="left">
테스트 아이디/비번 : aaaa (이 계정은 제가 따로 작업용으로 쓰는 계정입니다)
할 수 없이 작업 중인 게시판을 링크걸었습니다.
지금 외국용 사이트에 쓰일 포럼형 게시판을 작업하는 중입니다.
의뢰받은 데모사이트의 게시판의 댓글 시스템이 대충 저런 방식입니다.
데모사이트 : http://www.pistonheads.com/gassing/
그러니까 그누보드처럼 댓글에 답댓글을 달면 트리구조로 붙는 게 아니라 원댓글을 포함한 박스가 답댓글에 포함되어서 시간순으로 출력됩니다.
헐랭이님이 최근 올리신 악플러 신고 소스로 원댓글을 포함한 답댓글 기능까지는 구현했습니다. (그누보드의 기존 답댓글 기능은 아닙니다)
그런데 답댓글이 중복될수록 입력폼 안에 html소스(원댓글을 포함한 박스)도 계속 누적이 되는 겁니다. 그래서 나중에는 입력폼을 한참 스크롤다운해야 글을 올릴 수 있고 자칫 원댓글들 속에 글을 입력하게 되는 수도 있겠더군요.
그래서 자동으로 입력창이 늘어나는 자바스크립트도 써봤는데 웬지 미흡하고.......
아무튼 별별 수를 다 써다가 요 앞에 질문을 올린 겁니다.
제가 만들고 있는 게시판을 보시면 좀 더 적절한 조언이 있지 않을까 해서 링크를 걸었습니다.
그럼 다시 질문 드립니다^^;;;
textarea에 글쓰기 할 때, 보이지 않는 어떤 문구를 입력해놓고 글을 올린 후 본문에서 그 문구가 나타나게 할 수 있는 방법 없을까요? 따로 필드를 써서 히든값으로 전송하는 방식은 아닙니다.
이게 안되면 미리 특정문구가 들어있는 textarea를 열었을 때 스크롤바가 자동으로 맨 하단으로 내려지고 커서가 깜빡이게 하는 방법이라도....ㅜㅜ (커서는 안되더라도 스크롤바라도 미리 내려가 있기만 하면 됩니다.)
그 외 천상재회님 말씀처럼 원댓글과 답댓글을 따로 전송하는 방식도 생각해봤는데 중복되는 답댓글일 경우에 복잡한 문제가 발생하더군요.. (타임머신의 구조적 모순 비슷한..-_-;;)
혹시 이런 방식의 해결책 있으시면 대환영입니다~~^^
</textarea>
</td>
<td width="13" height="13"><a style="text-indent: 0px;" onMouseOver="return doScrollerIE('up','s1',10000)" onMouseOut="clearInterval(sRepeat)"href="#"><img src="image/javascript_scroll_up.gif" width="13" height="13" border="0"></a><br><img src="http://korea.internet.com/images/6x6..gif" width="13" height="208"><br><a style="text-indent: 0px;" onMouseOver="return doScrollerIE('down','s1',10000)" onMouseOut="clearInterval(sRepeat)" href="#"><img src="image/javascript_scroll_down.gif" width="13" height="13" border="0"></a>
</td>
</tr>
</table>
이렇게 할 수도 있군요!! 감사합니다^^

어젯밤에 잠시 테스트해보고 정신이 없어서 그냥나갔다가 오늘다시 테스트해 봤는데요.
아직도 뭐가뭔지 햇갈립니다.ㅋ 그리고 테스트해보니 코멘트 페이징에서 문제점이 보입니다.
코멘트등록,삭제등을 수행한후 제자리로 못가고 무조건 첫페이지로 가버립니다.ㅎ
코멘트 등록 삭제시 현재 코멘트 페이지의 번호를 넘겨준다음
<input type=hidden name=c_page value='<?=$c_page?>'>
코멘트ok , 삭제ok 파일에서도 넘어온 코멘트 페이지를 넘겨야 할것 같습니다.
예제로 write_comment_update.skin.php 에서 아래처럼
goto_url("./board.php?bo_table=$bo_table&wr_id=$wr[wr_parent]&page=$page" . $qstr . "&cwin=$cwin#c_{$comment_id}&c_page=$c_page");
아직도 뭐가뭔지 햇갈립니다.ㅋ 그리고 테스트해보니 코멘트 페이징에서 문제점이 보입니다.
코멘트등록,삭제등을 수행한후 제자리로 못가고 무조건 첫페이지로 가버립니다.ㅎ
코멘트 등록 삭제시 현재 코멘트 페이지의 번호를 넘겨준다음
<input type=hidden name=c_page value='<?=$c_page?>'>
코멘트ok , 삭제ok 파일에서도 넘어온 코멘트 페이지를 넘겨야 할것 같습니다.
예제로 write_comment_update.skin.php 에서 아래처럼
goto_url("./board.php?bo_table=$bo_table&wr_id=$wr[wr_parent]&page=$page" . $qstr . "&cwin=$cwin#c_{$comment_id}&c_page=$c_page");
역시 저로선 거의 알 수 없는 에러들이 산재해 있군요^^;;
바로 적용하겠습니다. 감사합니다~~
바로 적용하겠습니다. 감사합니다~~
갑자기 하던 작업을 중단하고 헐랭이님이 지적하신 문제에 매달리는 중입니다^^;;
goto_url("./board .... 이걸 수정하긴 했는데 여전히 글등록,삭제시 첫페이지로 가는군요.
삭제는 우선 놔두고 글등록시에 그냥 무조건 맨 뒷페이지로 가게 하는 방법을 모색중입니다.;;
goto_url("./board .... 이걸 수정하긴 했는데 여전히 글등록,삭제시 첫페이지로 가는군요.
삭제는 우선 놔두고 글등록시에 그냥 무조건 맨 뒷페이지로 가게 하는 방법을 모색중입니다.;;

아래 코멘트 폼태그에
<form name="fviewcomment" method="post" action="./write_comment_update.php" onsubmit="return fviewcomment_submit(this);" autocomplete="off" style="margin:0px;">
<input type=hidden name=w id=w value='c'>
<input type=hidden name=bo_table value='srm00'>
<input type=hidden name=wr_id value='46'>
<input type=hidden name=comment_id id='comment_id' value=''>
<input type=hidden name=sca value='' >
<input type=hidden name=c_page value='<?=$c_page?>'>//이라인을 추가한후
write_comment_update.skin.php 에 아래처럼 하세요.
<?
goto_url("./board.php?bo_table=$bo_table&wr_id=$wr[wr_parent]&page=$page" . $qstr . "&cwin=$cwin#c_{$comment_id}&c_page=$c_page");
?>
<form name="fviewcomment" method="post" action="./write_comment_update.php" onsubmit="return fviewcomment_submit(this);" autocomplete="off" style="margin:0px;">
<input type=hidden name=w id=w value='c'>
<input type=hidden name=bo_table value='srm00'>
<input type=hidden name=wr_id value='46'>
<input type=hidden name=comment_id id='comment_id' value=''>
<input type=hidden name=sca value='' >
<input type=hidden name=c_page value='<?=$c_page?>'>//이라인을 추가한후
write_comment_update.skin.php 에 아래처럼 하세요.
<?
goto_url("./board.php?bo_table=$bo_table&wr_id=$wr[wr_parent]&page=$page" . $qstr . "&cwin=$cwin#c_{$comment_id}&c_page=$c_page");
?>
바로 그렇게 해봤거든요^^;; 그런데도...ㅜㅜ
어찌됐든 감사합니다~
언젠가 다 해결되겠죠^^
어찌됐든 감사합니다~
언젠가 다 해결되겠죠^^