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

[smartEditor2] wr_content값 전달이 안돼요 ㅠㅠ 도와주세요!! 채택완료

KoAa 2년 전 조회 3,260

안녕하세요 ^^
오랜만에 이렇게 인사드립니다. 새해 복 많이 받으세요!

모바일 페이지로 만들어 놓은 게시판에서 smartEditor2를 사용하여 글을 작성하면 내용이 전달되지 않습니다. ( 스마트 에디터를 사용하지 않고 textArea태그로 값을 전달하면 정상적으로 전달됩니다! )

write.php에서 글을 입력하고 전송하면 [내용을 입력하세요.] 라는 Alert창이 뜹니다. 

(참고로! pc 페이지에서 동일한 스킨으로 적용하여 css만 다르게 사용하고 있는데 pc에서는 내용(글자와 이미지)이 모두 정상적으로 전달되고 있습니다!)

 

bbs/write_update.php에서 $_POST로 넘어오는 내용을 print_r해서 확인해봤는데 
제목으로 사용한 input태그의 값[wr_subject]은 전달이 되었지만 내용인 [wr_content]는 비어있었습니다.

 

기본 베이직 스킨의 write.skin.php를 이용해도 동일한 현상이 나타나는데 모바일에서 스마트 에디터2를 사용하여 내용값을 전달하는 방법을 알고싶습니다!  

많은 고수님들의 관심과 도움 부탁드립니다 ^^

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

답변 3개

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

모바일 스킨구간에 textarea의 name이 wr_content이 아닐수도 있겠네요

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

답변에 대한 댓글 12개

K
KoAa
2년 전
말씀해주신 영역 찾아보았습니다!
정상적으로 동작하는 textarea에서는 name이 wr_content로 설정되어 있어서 값이 전달된 것 같습니다.

하지만 스마트에디터에서는 어느 영역에 name값이 적혀있어야하는지 모르겠습니다 ㅠㅠ 해당 내용 조금 더 알려주실 수 있을까요?
개노미
2년 전
에디터쪽은 작업할 일이 없기 때문에 에티터쪽 파일을 문제가 아닐 듯 싶구요
에디터에서는 id값을 받아서 처리하기때문에 수정안하시길..
write.php에서 editor_html함수 호출구간 한번 보셔야 할 듯 하구요..
스킨에서 따로 처리했을 수도 있어서 스킨쪽에 출력도 보셔야 할테고..
스킨페이지에서 소스보기로 했을 때 name값이 잘 노출되고 있는지도 보셔야 할 듯 해요
배르만
2년 전
우선 스크립트 오류가 나고 있어서 그것부터 확인하시는게 좋을것 같습니다.
해당페이지에서 F12 로 개발자도구 > 콘솔 보시면 에러가 보이고
Mixed Content 에러가 나면서 jquery 를 로드하지 못하고 있는 상태입니다.

[code]
Uncaught ReferenceError: jQuery is not defined
------------------------------------------------------
Uncaught ReferenceError: $ is not defined
[/code]

접근 주소는 https 인데 소스상에서 http 로 호출하는 부분이 존재합니다.
[code]
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
[/code]

먼저 소스상으로 https://ajax.goo ... 처럼 동일한 https 로 적용되도록 하고 확인해보시고

스크립트가 실제로는 없는 부분이 몇개 되는것 같습니다.
소스보기 한다음 .js 로 찾아 직접 링크 클릭해보세요
[code]
/theme/basic/js/jquery-1.10.2.min.js
/theme/basic/js/jquery-ui.js
/theme/basic/js/lib.js
/theme/basic/js/quick.js
/theme/basic/js/jquery-1.10.2.min.js?ver=210618
/theme/basic/js/jquery-ui.js?ver=210618
[/code]
실제로 스크립트가 존재한다고 해도 동일한 스크립트가 중복 선언된 부분도 있습니다.

또한 스마트에디터에서 jquery 를 사용하는 부분이 있는데
[code]
/plugin/editor/smarteditor2/config.js
[/code]
위 언급한 문제들로 인해 jquery 가 로드되지 못하는 현상이 있을 경우
정상동작을 하지 않을 수 있으니

- https 로 리소스를 불러오도록 확인
- 실제 경로에 스크립트 존재여부 확인

순서로 확인해보시면 좋을것 같습니다.
개노미
2년 전
아...그러네요..스크립트가 오류나고 있었네요...;;
개노미
2년 전
혹시 몰라서 모바일환경에서
[code]
oEditors.getById['wr_content'].exec('UPDATE_CONTENTS_FIELD', [])
[/code]
강제로 구동시켜서 submit했더니 잘 들어가네요...
K
KoAa
2년 전
@배르만 감사합니다! 말씀해주신 내용 확인해서 체크해볼게요!^^
K
KoAa
2년 전
@개노미 적어주신 코드는 어디에 추가하면 되는걸까요?
개노미
2년 전
조금 더 보니까 스크립트쪽 문제는 맞는 듯 한데요..
mixed같은 경우에 pc도 동일하게 나고 있는걸 봐서는....
<!-- 리포트2.0 로그분석코드 시작 -->
요 구간한번 빼보실래요?
K
KoAa
2년 전
@배르만 말씀해주신 오류메시지가 뜨는 부분은 모두 해소하였으나 문제가 해결되지는 않았습니다 ㅠㅠ 제가 숨김처리하는 과정에서 빼먹은게 있는 걸까요?
K
KoAa
2년 전
@개노미
스크립트 오류가 발생하는 구역은 모두 찾아서 오류를 해결하였는데 동일하게 내용 전달이 되고있지 않습니다 ㅠ

위에서 말씀해주신 코드를 직접 추가하면 안되는걸까요?

oEditors.getById['wr_content'].exec('UPDATE_CONTENTS_FIELD', [])
개노미
2년 전
저 코드는 폼전송시 자동으로 동작하게 되어있는데 지금 사이트에서는 전송버튼을 눌렀을 때 자바스크립트와 관련없이 폼이 그냥 전송되고 있는거에요
그래서 스크립트 구간이 먹통되는 구간을 찾아야 하는데 pc버전하고 mobile하고 딱히 차이나는 부분이
리포트2.0 출력구간인 듯 해서 해당 구간을 지워보자는 얘기에요
K
KoAa
2년 전
@개노미 친절한 설명까지 감사합니다 ^^
말씀해주신 script 영역도 주석처리하여 비활성화 해보았는데 해결이 안되네요 ㅠㅠ

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

2년 전

</p>

<p><form ... onsubmit="return fwrite_submit(this);" .... ></p>

<p>...</p>

<p></form></p>

<p><script> ... function fwrite_submit(f) ... </script></p>

<p>

 

폼 서브밋시 fwrite_submit 함수를 거쳐야 함에도

건너 뛰는 현상이 있습니다.

 

소스보기에서 /js/wrest.js 가 두번 중복 선언이 되어 있게 나오는데

여기서 문제가 시작되는것 같습니다.

 

wrest.js 에는 다음과 같은 코드가 있고

</p>

<p>function wrestInitialized()

{

    for (var i = 0; i < document.forms.length; i++) {

        if (document.forms[i].onsubmit) {

            document.forms[i].oldsubmit = document.forms[i].onsubmit;

        }

        document.forms[i].onsubmit = wrestSubmit;

    }

}</p>

<p>$(document).ready(function(){

    // onload

    wrestInitialized();

});</p>

<p>

위 코드는 문서 안의 모든 <form> 요소에 대해 필수입력 항목 일괄처리를 위한 

onsubmit 이벤트 핸들러를 인터셉트, 후킹하는 동작이 정의되어 있습니다.

 

이 부분이 중복 호출 될경우

 

처음 /js/wrest.js 에서

form.oldsubmit = fwrite_submit, form.onsubmit = wrestSubmit

 

다음 /js/wrest.js 에서

form.oldsubmit = wrestSubmit, form.onsubmit = wrestSubmit

 

form 의 original onsubmit 인 'return fwrite_submit' 은 완전히 참조를 잃어버리게 되는 상황 같습니다.

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

답변에 대한 댓글 3개

K
KoAa
2년 전
감사합니다 ㅠㅠ 해당 선언 중복되지 않도록 코드 정리해보겠습니다!
K
KoAa
2년 전
@배르만 저에게는 너무 어려운 문제였는데 방법 알려주셔서 감사합니다!! 문제 해결되면 답글로 말씀드릴게요! ^^
K
KoAa
2년 전
@배르만 말씀해주신 것처럼 wrest.js가 중복되어서 값이 날아간것 같습니다. wrest.js를 중복시키지 않고 1회만 출력하니까 정상적으로 값이 전달되었습니다! ㅎㅎ 감사합니다 ^^

코드 정리하면 조금 더 수월하게 사용할 수 있을 것 같습니다.

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

2년 전

</p>

<p>function fwrite_submit(f)

{</p>

<p>  alert('abc');</p>

<p>

이런식으로 넣으셔서 경고창 나오는지 확인해 보시구요..

베르만님께서 말씀하신 것 처럼 .js 파일들 중복선언 및 코드가 정리가 좀 필요해 보여요;;

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

답변에 대한 댓글 3개

K
KoAa
2년 전
감사합니다!
일단 말씀해주신 것처럼 경고창이나 콘솔값 찍어서 전달되는지 확인해보겠습니다 ㅎㅎ
K
KoAa
2년 전
@개노미 오랜시간 함께 고민해주셔서 감사합니다! 새해복 많이 받으세요!^^ 오류 해결하면 댓글로 말씀드리겠습니다 ^^
K
KoAa
2년 전
@개노미 wrest.js 스크림트 파일이 중복으로 되어서 값이 초기화되어 넘어가서 오류가 발생했습니다 ㅠㅠ 코드 정리하면 오류가 해결될 것 같습니다 ㅎㅎㅎ 감사합니다!!

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

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

로그인