안녕하세요.
제가 불초하게도 php에 거의 문외한이라 이틀 반동안 검색과 구글링으로 헤메다가
이제 정신건강상 다소 무리가 오는 상태에 이르러
부득이 QA게시판 문을 두드리오니
여러 고수님들께서는 아래의 제 고민을 함 훑어봐 주시고
천금 같은 조언 해주시면 감사드리겠습니다.
# 하고싶은 것 :
- 아래 예시 코드를 보시면 하나의 선택범주에 여분필드 wr_37에서 wr_40까지 4개를 쓰고 있습니다.
- 이렇게 4개나 소모하지 않고 여분필드 하나(wr_37)를 쪼개 나눠서 쓰고 싶습니다.
- 여분필드를 75개나 만들어 놨지만 아래 코드처럼 하다가는 여분필드가 마이 모자라더군요..
# 지금껏 해결하지 못한 사유 :
- 라디오 형식 또는 체크박스 형식과 텍스트 형식이 섞여 있는 선택범주다 보니
- 각 형식별로 쪼개진 여분필드를 어떻게 넣어야 할지지 모르겠더군요..
# 기타 참고 :
- 아래의 코드처럼 라디오 + 라디오 + 텍스트 와 같은 조합이 있고
- 체크박스 + 텍스트 조합이 있으며 각 항목의 개수는 유동적입니다.
감사합니당~
<!-- item 단위 시작 -->
<div class="itembox">
<section class="item item-left">
<img src="<?php echo G5_URL ?>/theme/basic/img/icons/sample.gif"" height="130" align="right" border="0">
</section>
<section class="item item-right">
<div class="icheck-material-red">
<input type="radio" id="wr_37id1" name="wr_37" value="옵션1"<?php echo ($write['wr_37'] == "옵션1") ? " checked" : "";?> />
<label for="wr_37id1">옵션1</label>
</div>
<div class="icheck-material-orange">
<input type="radio" id="wr_37id2" name="wr_37" value="옵션2"<?php echo ($write['wr_37'] == "옵션2") ? " checked" : "";?> />
<label for="wr_37id2">옵션2</label>
</div>
<div class="icheck-material-indigo">
<input type="radio" id="wr_37id3" name="wr_37" value="옵션3"<?php echo ($write['wr_37'] == "옵션3") ? " checked" : "";?> />
<label for="wr_37id3">옵션3</label>
</div>
<div class="icheck-material-purple">
<input type="radio" id="wr_37id4" name="wr_37" value="옵션4"<?php echo ($write['wr_37'] == "옵션4") ? " checked" : "";?> />
<label for="wr_37id4">옵션4</label>
</div>
<div class="icheck-material-grey">
<input type="radio" id="wr_37id5" name="wr_37" value="옵션5"<?php echo ($write['wr_37'] == "옵션5") ? " checked" : "";?> />
<label for="wr_37id5">옵션5</label>
</div>
</section>
<div style="clear:both;font-size:0px;border-bottom:1px dashed #d0d4df;"></div> <!-- 점선 라인 --><br>
<section class="item-footer">
<font color="#001">▶ 프레임 선택옵션</font><br>
<div class="icheck-material-purple icheck-inline">
<input type="radio" id="wr_38id1" name="wr_38" value="프레임1"<?php echo ($write['wr_38'] == "프레임1") ? " checked" : "";?> />
<label for="wr_38id1">프레임1</label>
</div>
<div class="icheck-material-purple icheck-inline">
<input type="radio" id="wr_38id2" name="wr_38" value="프레임2"<?php echo ($write['wr_38'] == "프레임2") ? " checked" : "";?> />
<label for="wr_38id2">프레임2</label>
</div>
<div class="icheck-material-purple icheck-inline">
<input type="radio" id="wr_38id3" name="wr_38" value="프레임3"<?php echo ($write['wr_38'] == "프레임3") ? " checked" : "";?> />
<label for="wr_38id3">프레임3</label>
</div>
<br><br>
<div style="clear:both;font-size:0px;border-bottom:1px dashed #d0d4df;"></div> <!-- 점선 라인 --><br>
<font color="#001">▶ 유형 선택옵션</font><br>
<div class="icheck-material-indigo icheck-inline">
<input type="radio" id="wr_39id1" name="wr_39" value="유형1"<?php echo ($write['wr_39'] == "유형1") ? " checked" : "";?> />
<label for="wr_39id1">유형1</label>
</div>
<div class="icheck-material-indigo icheck-inline">
<input type="radio" id="wr_39id2" name="wr_39" value="유형2"<?php echo ($write['wr_39'] == "유형2") ? " checked" : "";?> />
<label for="wr_39id2">유형2</label>
</div>
<div class="icheck-material-indigo icheck-inline">
<input type="radio" id="wr_39id3" name="wr_39" value="유형3"<?php echo ($write['wr_39'] == "유형3") ? " checked" : "";?> />
<label for="wr_39id3">유형3</label>
</div>
<div class="icheck-material-indigo icheck-inline">
<input type="radio" id="wr_39id4" name="wr_39" value="유형4"<?php echo ($write['wr_39'] == "유형4") ? " checked" : "";?> />
<label for="wr_39id4">유형4</label>
</div>
</section><br>
<!-- 추가메모 텍스트 박스 시작 -->
<section class="item-footer">
<label for="wr_40id" class="sound_only">추가메모</label>
<input type="text" name="wr_40" value="<?php echo $wr_40 ?>" id="wr_40id" class="frm_input full_input" size="100" placeholder="보충설명">
</section>
<!-- 추가메모 텍스트 박스 종료 -->
</div>
<br>
<!-- item 단위 종료 -->
답변 1개 / 댓글 1개
자 잘따라오세요!
name = wr_37, wr_38, wr_39, wr_40이라 정의되어있는 input을 다른이름으로 바꿔주세요
option1 option2 option3 option4 이런식으로요
그런다음 write_update.php에 여분필드 추가한것들이있겠죠? 그중에서
wr_37 = $option1."|".$option2."|".$option3."|".$option4;
이렇게 wr_37필드에 대한 저장값을 바꿔줍니다
저장이 되는걸 확인하시면
이제 다시 글쓰기폼으로 돌아와서 수정이나 출력시에 어떻게 표기할수있냐면
echo $wr_37; 하면 "옵션1|옵션2|옵션3|옵션4"가 출력될수있는걸 볼수있습니다
이걸이제 배열로 빼줄꺼에요
$wr37 = explode('|', $wr_37); 이렇게 explode 함수를 통해서 배열로 빼줍니다
그럼 echo $wr37[0]; 이면? "옵션1"이 출력됩니다
이걸 기존에 wr_37이라 정의했는곳에 $wr37[0]을
기존에 wr_38이라 정의했는곳에 $wr38[1]을
이런식으로 문자열로 저장뒤 explode로 문자열을 특정한 조건으로 배열로 만든뒤 값을 가져오는 방식을 많이 쓰고있습니다
작성자분이 말씀하신것처럼 여분값이 많다면 굳이 한 DB컬럼에 하나씩 넣는것보다는 이런방식을 많이 이용합니다
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.