셀렉트 박스 wr_1값 관련 질문
본문
<div class="main">
<select name="wr_1" id="wr_1" class="form-select" required onchange="test();">
<option value="사과"<?php echo ($write['wr_1'] == "사과") ? " selected" : "";?>>사과</option>
<option value="딸기"<?php echo ($write['wr_1'] == "딸기") ? " selected" : "";?>>딸기</option>
<option value="self">셀프입력</option>
</select>
</div>
<div name="self" id="self" style="display:none">
<input type="text" name="wr_1" id="wr_1" value="<?php echo $wr_1?>">
</div>
해당 코드로 셀렉트박스에서 셀프입력 선택시 디스플레이 온오프로 input창을 호출하여 wr_1값을 직접 받을 수 있도록 해두었습니다.
여기 까지는 잘 작동하는데 문제는
사과, 딸기를 고르게 될경우
<input type="text" name="wr_1" id="wr_1" value="<?php echo $wr_1?>"> 가 호출되지 않았음에도 같이 적용이 되어 사과나 딸기를 선택 했음에도
input이 함께 적용되어
당 input에는 당연히 입력한 값이 없으므로 공백으로 값을 넘겨줍니다...
해결 할 수있는 방법 있을까요
답변 2
글쓰기 쪽에 하시는거면 위에랑 같이 value="<?php echo $wr_1?>" 가 아니라 value="<?php echo $write['wr_1']?>" 로 변경해보세요.
그리고 그냥 서로 안보이게 하는거면 넘어가서 이름이 두개라서 제대로 작동이 안 될 수 있습니다. 직접 입력은 다른 값으로 하시고 등록 할때 스크립트나 php 파일에서 따로 처리를 해주시는게 좋습니다.
<select name="wr_1" id="wr_1" class="form-select" required onchange="test(this.value);">
<input type="text" name="wr_1" id="wr_1_self" value="<?php echo $wr_1?>" disabled>
function test(v) {
~~~~~ 다른 코드 ~~~~~
const fl = v === "self" ? false : true;
$("#wr_1_self").attr("disabled", fl);
위에 빨간색 부분 추가 혹은 변경해 주시고 test() 함수에도 위 내용 추가해 보세요.