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

게시판 여분필드 값을 내용에 넣기 채택완료

mostech 6년 전 조회 5,279

아래 내용에도 올렸는데 수정모드에서만 문자열이 합쳐져서 다시 올립니다.

 

write.skin.php  에서 여분필드를 41개 만들어서 input  입력을 받습니다.

 

</p>

<p>    <?php for ($i=1; $i<=41; $i++) {  //여분필드 입력 ?>

        <input type="text" name="<?php echo 'wr_'. $i?>" value="<?php echo $write['wr_'.$i]?>" id="<?php echo 'wr_'. $i?>" class="frm_input" size="20" placeholder="입력">

    <?php }  //여분필드 끝?>

 

$content 내용(textarea)에 여분필드에서 입력받은 내용을 모두 합쳐서 넣어서 작성완료 하고 싶습니다.

밑에 게시물의 코드는 수정 하면 입력이 되는데 새로 글 작성시에 넣고 싶습니다.

 

밑에 글 참조 https://sir.kr/qa/293521">https://sir.kr/qa/293521

 

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

답변 3개

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

스킨 폴더에 write_update.head.skin.php을 만들고 아래 코드를 넣으세요

for($i=1; $i<42; $i++){

$fld="wr_".$i;

if(!$_POST[$fld]) continue;

$wr_content.=' '.$_POST[$fld];

}

?>

그런데 검색용 키워드라면 wr_1필드에 합쳐서 저장하고,wr_1에 index 부여하면

오히려 검색이 더 잘 될것 같습니다(합친 내용이 아주 많다면 wr_1필드를 text로 변경)

검색은 sfl을 wr_1로 하여 stx값 검색 하도록 하면 됩니다

 

더우기 wr_1~wr_41 값이 내용부분에 합쳐져나오면 뷰페이지에서는

필요없는 값이 붙어서 너저분해질 것 아닙니까?

또한 수정할때는 입력했던 wr_1~wr_41 값은 어떻게 나오게 하는가요?

위의 코드처럼 해서는 수정시 모두 값이 나오지않을텐데요?

 

코드의 목적은 ~~<-- 이런 설명이 애초에 질문에 들어있었으면 더 나은 방법을 누군가 알려줄 수 있었을텐데...

 

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

답변에 대한 댓글 2개

m
mostech
6년 전
오! 잘됩니다. 감사합니다.
wr_1에 다 넣으면 좋겠는데 각 필드 값을 계산을 하거나 해야 해서 필드를 나누었는데.
하나에 몰아넣고 | 코드등으로 나눠서 배열에서 계산하는게 더 빠를려나요?
균이
6년 전
제 설명과 다르게 이해한 듯 하여...
입력은 지금처럼 동일하게 하되 write_update.head.skin.php에서 wr_content대신
wr_1에 구분자로 합쳐서 넣는다는 것입니다
수정시는 wr_1값을 explode해서 사용하면 되니까요

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

플래토
6년 전

최근엔 코드 질문답변에 코드를 직접 구현은 삼가는 중인데

 

삼일절 기념으로 코드 만들어봅니다.

실행안해봤습니다.

 

/skin/board/basic/write.skin.php 를 기준으로

 

하단의 javascript 영역에서 

 

function fwrite_submit(f) { 시작시에

var wrs = "";

var cnt  = 41; // wr_41 까지 있을경우 41로;

for (var i = 1; i <= cnt; i++) {

    wrs += $("input [name=wr_"+i+"]").val()+ "\n";

}

f.wr_content.value = wrs;

를 추가하세요

 

// 입력된 항목을 db저장하기위한 write_update.php 로 전달하기 직전

validation checek 를 하기위한 함수를 호출할때

변수에  wr_1~wr_41 까지의 input 값을 합쳐서 

wr_content에 대입합니다.

 

 

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

답변에 대한 댓글 1개

m
mostech
6년 전
귀한 코드 감사합니다.

코드의 목적은 여분필드에 41개의 입력값을 내용에 넣어서 추후에 검색이 가능하게 하는것입니다.
내용은 히든처리 해서 검색용으로만 쓸려고 합니다.
[code]
function fwrite_submit(f)
{
var wrs = ""; //플래토님 3.1절 코드
var cnt = 41;
for (var i = 1; i <= cnt; i++) {
wrs += $("input [name=wr_"+i+"]").val()+ "\n";
}
f.wr_content.value = wrs;

<?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함 ?>

var subject = "";
var content = "";
$.ajax({
url: g5_bbs_url+"/ajax.filter.php",
type: "POST",
data: {
"subject": f.wr_subject.value,
"content": f.wr_content.value
},
dataType: "json",
async: false,
cache: false,
success: function(data, textStatus) {
subject = data.subject;
content = data.content;
}
});
[/code]
이렇게 하니 결과값이

undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
.
.
.

로 나옵니다. 변수명은 다 맞는것 같은데 안되네요 ㅜㅜ

항상 건강하시고 행복하시길 바랍니다.

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

6년 전

wr_content 필드를 대체하시는거라면 $wr_content로 해보세요 변수명을

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

답변에 대한 댓글 1개

m
mostech
6년 전
$wr_content로 해봤지만 현재 입력값을 가져오지 못합니다.
자바스크립트로 하는건 맞는것 같은데 변수 정의가 안된듯 합니다.

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

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

로그인