글쓴이가 항목별로 노출여부 설정

글쓴이가 항목별로 노출여부 설정

QA

글쓴이가 항목별로 노출여부 설정

본문

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

 

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

이렇게 되어 있는데요. 

 

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

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

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

 

 

 

이 질문에 댓글 쓰기 :

답변 3

그누순정 기준입니다.

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

wr_10 이 핵심 문자열입니다.


체크:공개<input type="hidden" id="wr_10" name="wr_10" value="<?php echo $write['wr_10']; ?>"><br>
<input type="checkbox" id="check_1"><input id="wr_1" name="wr_1" value="<?php echo $write['wr_1']; ?>"><br>
<input type="checkbox" id="check_2"><input id="wr_2" name="wr_2" value="<?php echo $write['wr_2']; ?>"><br>
<input type="checkbox" id="check_3"><input id="wr_3" name="wr_3" value="<?php echo $write['wr_3']; ?>"><br>
<input type="checkbox" id="check_4"><input id="wr_4" name="wr_4" value="<?php echo $write['wr_4']; ?>"><br>
<input type="checkbox" id="check_5"><input id="wr_5" name="wr_5" value="<?php echo $write['wr_5']; ?>"><br>
<input type="checkbox" id="check_6"><input id="wr_6" name="wr_6" value="<?php echo $write['wr_6']; ?>"><br>
<input type="checkbox" id="check_7"><input id="wr_7" name="wr_7" value="<?php echo $write['wr_7']; ?>">

 

write.skin.php 의 하단부에


<script>
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>

 

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

<?php
$my = explode("|", $view['wr_10']);
echo $my[1];
echo $my[7];
?>

 

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

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

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

=> wr_10 : wr_2,wr_5

 

* write.skin.php

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

<input type="radio" name="wr_1_open" value="Y">공개

<input type="radio" name="wr_1_open" value="N">비공개

 

* 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

이름 : <php echo strstr($view['wr_10'], 'wr_1') ? '비공개' : $view['wr_1'] ?>

 

* list.skin.php

이름 : <php echo strstr($list[$i]['wr_10'], 'wr_1') ? '비공개' : $list[$i]['wr_1'] ?>

알려주신 팁으로 잘 적용 했습니다. 너무 감사드리고요. 한가지 더 문의드리고 싶은게 있는데요.
수정으로 들어갔을때 공개,비공개 선택해 놓은 값이 사라져 버리는데요. 혹시 선택값이 유지되게 할 수도 있을까요?

* 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' : '' ?>>비공개

답변을 작성하시기 전에 로그인 해주세요.
전체 125,873 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT