글쓴이가 항목별로 노출여부 설정
본문
여분필드를 이용해서, 자기소개 게시판을 만들었습니다.
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'] ?>
좋은정보 감사드립니다. 저도 배우고 갑니다.