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

글쓴이가 항목별로 노출여부 설정 채택완료

동물원 2년 전 조회 2,538

여분필드를 이용해서, 자기소개 게시판을 만들었습니다.

 

wr_1 : 이름 ,  wr_2 : 출신학교 ,  wr_3 : 전화번호 , wr_4 : 이메일 ,  wr_5 : 생일 ,  wr_6 : 취미 , wr_7 : MBTI유형

이렇게 되어 있는데요. 

 

글쓴이가 각 항목별로 공개여부를 설정할 수 있게 적용할 수 있을까요?

공개된 항목은 리스트 (list.skin.php) 및 내용보기 (view.skin.php)에서 항목의  내용이 표시되고,

비공개된 항목은 리스트 및 내용보기에 표시될때 해당항목의 값대신 "비공개"라고 보이게 하고 싶습니다.

 

 

 

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

답변 3개

채택된 답변
+20 포인트

그누순정 기준입니다.

write.skin.php 의 적당 위치에 아래처럼요. 체크가 공개이고 체크없는 빈값이 비공개입니다.

wr_10 이 핵심 문자열입니다.

</p>

<p>체크:공개<input type="hidden" id="wr_10" name="wr_10" value="<?php echo $write['wr_10']; ?>">


<input type="checkbox" id="check_1"><input id="wr_1" name="wr_1" value="<?php echo $write['wr_1']; ?>">


<input type="checkbox" id="check_2"><input id="wr_2" name="wr_2" value="<?php echo $write['wr_2']; ?>">


<input type="checkbox" id="check_3"><input id="wr_3" name="wr_3" value="<?php echo $write['wr_3']; ?>">


<input type="checkbox" id="check_4"><input id="wr_4" name="wr_4" value="<?php echo $write['wr_4']; ?>">


<input type="checkbox" id="check_5"><input id="wr_5" name="wr_5" value="<?php echo $write['wr_5']; ?>">


<input type="checkbox" id="check_6"><input id="wr_6" name="wr_6" value="<?php echo $write['wr_6']; ?>">


<input type="checkbox" id="check_7"><input id="wr_7" name="wr_7" value="<?php echo $write['wr_7']; ?>"></p>

<p>

 

write.skin.php 의 하단부에

</p>

<p><script></p>

<p>for (i = 1; i <= 7; i++) document.querySelector("#check_" + i).checked = document.querySelector("#wr_10").value.split("|")[i] != "비공개";

document.querySelector("#btn_submit").addEventListener("click", function() {

    document.querySelector("#wr_10").value = "";

    for (i = 1; i <= 7; i++) document.querySelector("#wr_10").value += "|" + (document.querySelector("#check_" + i).checked ? document.querySelector("#wr_" + i).value : "비공개");

} );

</script></p>

<p>

 

wr_10 의 값을 쪼물딱 거린 형태라 뷰페이지에서는 아래처럼요.

 

$my[1] 부터 $my[7] 까지입니다.

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

답변에 대한 댓글 1개

동물원
2년 전
상세한 코드까지 너무 감사 드립니다. 설명해 주신 내용이 이해가 잘 되네요. 한번 적용해 보겠습니다. 감사합니다.

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

좋은정보 감사드립니다. 저도 배우고 갑니다. 

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

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

2년 전

wr_10 필드 : 비공개할 필드 정보 저장

ex) 출신학교(wr_2), 생일(wr_5) 비공개

=> wr_10 : wr_2,wr_5

 

* write.skin.php

공개

비공개

 

* write_update.head.skin.php

if ($wr_1_open == 'N')

  $arr[] = "wr_1";

if ($wr_2_open == 'N')

  $arr[] = "wr_2";

...

$wr_10 = implode(',', $arr);

 

* view.skin.php

이름 :

 

* list.skin.php

이름 :

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

답변에 대한 댓글 4개

동물원
2년 전
상세한 답변 정말 감사합니다.
동물원
2년 전
알려주신 팁으로 잘 적용 했습니다. 너무 감사드리고요. 한가지 더 문의드리고 싶은게 있는데요.
수정으로 들어갔을때 공개,비공개 선택해 놓은 값이 사라져 버리는데요. 혹시 선택값이 유지되게 할 수도 있을까요?
마르스컴퍼니
2년 전
* write.skin.php

<input type="text" name="wr_1">

<input type="radio" name="wr_1_open" value="Y" <php echo strstr($write['wr_10'], 'wr_1') ? '' : 'checked' ?>>공개

<input type="radio" name="wr_1_open" value="N" <php echo strstr($write['wr_10'], 'wr_1') ? 'checked' : '' ?>>비공개
동물원
2년 전
추가 답변까지 상세히 해주셔서 정말 감사합니다. 잘 적용되네요. 진심 감사드리고, 즐거운 오후 되세요.^^

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

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

로그인