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

2. 게시판 여분필드와 자바스크립트 : radio

· 2년 전 · 2112 · 6

 

먼저 1편 https://sir.kr/g5_tip/20120 을 꼭 읽으시기 바랍니다.

여분필드를 라디오 버튼으로 사용할 때는 보통 아래의 코드를 사용합니다.

 

[code]

<input type="radio" name="wr_2" value="하나"<?php echo ($write['wr_2'] === "하나") ? " checked" : ""; ?>> 하나
<input type="radio" name="wr_2" value="둘"<?php echo ($write['wr_2'] === "둘") ? " checked" : ""; ?>> 둘
<input type="radio" name="wr_2" value="셋"<?php echo ($write['wr_2'] === "셋") ? " checked" : ""; ?>> 셋

[/code]

 

----------

 

이걸 자바스크립트로 표현하면 아래처럼 됩니다. 저는 for of 반복문 처리하였습니다.

DOMContentLoaded 로 상단에서 표현하는 방법은 1편 링크를 보고 참고하세요.

 

[code]

<input type="radio" name="wr_2" value="하나"> 하나
<input type="radio" name="wr_2" value="둘"> 둘
<input type="radio" name="wr_2" value="셋"> 셋

.

.

.

<script>
for (i of document.querySelectorAll("input[name='wr_2']")) i.checked = i.value === "<?php echo $write['wr_2']; ?>";
</script>

[/code]

 

----------

 

write.skin.php 를 건드리지 않고 pc basic 스킨의 write.tail.skin.php 에서 표현하려면 아래처럼요.

태그소스가 길고 칸띄우기까지 들어갔으므로 모던 js 인 역따옴표 변수(여기서는 wrRadio_2)를 하나 만들어서 태그를 담아두는 것이 편합니다.

역따옴표 변수를 쓰면 변수안에 외따옴표나 쌍따옴표도 맘대로 쓸 수 있기 때문에 따옴표 문제로 코드가 실행이 안 되는 걸 경험해 본 분이라면 아마도 만세를 부를 것입니다.

저도 비교적 최근부터 사용하기 시작했구요.

 

[code]

<script>
wrRadio_2 = `
    <input type="radio" name="wr_2" value="하나"> 하나
    <input type="radio" name="wr_2" value="둘"> 둘
    <input type="radio" name="wr_2" value="셋"> 셋
`;
document.querySelector("#bo_w .bo_w_tit").insertAdjacentHTML("afterend", wrRadio_2);
for (i of document.querySelectorAll("input[name='wr_2']")) i.checked = i.value === "<?php echo $write['wr_2']; ?>";
</script>

[/code]

 

31845957_1678149475.9101.jpg

 

위와 같이 훌륭(?)하게 만들어졌습니다.

댓글 작성

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

로그인하기

댓글 6개

2년 전
여분필드사용 시 좋은 팁 감사 합니다. 잘 활용 하겠습니다.
2년 전
@들레아빠 그냥저냥 올려본 것입니다.ㅋ
2년 전
그동안 역따옴표 안써봤는데 써봐야 겠습니다. ^^
2년 전
@민트다이어리 아주 편합니다. 모던 js 에서 벡틱(역따옴표)와 파트너인 ${} 도 쓸만 하구요.
2년 전
역시 굿굿^^
2년 전
@푸른산타 알고나면 쉽습니다.ㅋ

게시글 목록

번호 제목
20141
20129
20120
20114
20106
20099
20097
20091
20050
20042
20039
20010
19996
19978
19969
19954
19911
19908
19907
19905
19904
19892
19882
19864
19861
19844
19831
19829
19820
19805