셀렉트에서 옵션에 여러값을 나눠 입력시...
본문
안녕하세요.
한 필드에 여러 값을 입력하고 있는데요.
셀렉트에서 옵션에는 어떤식으로 넣어야 하는지요?
wr_19[<?=$i?>] 이것을
$write['wr_19<?=$i?>'] == '미납' 혹은
$write['wr_19[<?=$i?>]'] == '미납' 혹은
$write['wr_19'] & <?=$i?> == '미납'
ㅎㅎㅎ 너무 초보라.... 어떤식으로 하는지 알려주시면 감사하겠습니다.
<td>
<select id="wr_19[<?=$i?>]" name="wr_19[<?=$i?>]" required>
<option value="">---결제상태---</option>
<option value="미납" <?php echo ($write['wr_19'] == '미납') ? " selected" : "";?>>미납</option>
<option value="분납" <?php echo ($write['wr_19'] == '분납') ? " selected" : "";?>>분납</option>
<option value="완납" <?php echo ($write['wr_19'] == '완납') ? " selected" : "";?>>완납</option>
<option value="환불" <?php echo ($write['wr_19'] == '환불') ? " selected" : "";?>>환불</option>
<option value="취소" <?php echo ($write['wr_19'] == '취소') ? " selected" : "";?>>취소</option>
</select>
</td>
답변 4
다음과 같은 방법도 있으니 참고 해보세요
<?php
if (!defined('_GNUBOARD_')) exit;
// 필드명과 기본값 설정
$payment_statuses = array("미납", "분납", "완납", "환불", "취소");
$wr_19_values = explode(',', $write['wr_19']); // 현재 선택된 값들을 배열로 분할
?>
<!-- 필드 표시 시작 -->
<tr>
<th scope="row"><label for="wr_19">결제상태</label></th>
<td>
<select id="wr_19" name="wr_19[]" required multiple>
<option value="">---결제상태---</option>
<?php foreach ($payment_statuses as $status) { ?>
<option value="<?php echo $status; ?>" <?php echo (in_array($status, $wr_19_values)) ? "selected" : ""; ?>><?php echo $status; ?></option>
<?php } ?>
</select>
</td>
</tr>
<!-- 필드 표시 끝 -->
name 에 [<?=$i?>] 을 뻬야됩니다.
!--><td> <select id="wr_19[<?=$i?>]" name="wr_19" required> <option value="">---결제상태---</option> <option value="미납" <?php echo ($write['wr_19'] == '미납') ? " selected" : "";?>>미납</option> <option value="분납" <?php echo ($write['wr_19'] == '분납') ? " selected" : "";?>>분납</option> <option value="완납" <?php echo ($write['wr_19'] == '완납') ? " selected" : "";?>>완납</option> <option value="환불" <?php echo ($write['wr_19'] == '환불') ? " selected" : "";?>>환불</option> <option value="취소" <?php echo ($write['wr_19'] == '취소') ? " selected" : "";?>>취소</option> </select> </td>
wr_19[<?=$i?>] 은 wr_19가 여러개 라고 하시는거잖아요?
<td>
<select id="wr_19[<?=$i?>]" name="wr_19[<?=$i?>]" required>
<option value="">---결제상태---</option>
<option value="미납" <?php if (strpos($write['wr_19'], '미납') !== false ) echo " seleted";?>>미납</option>
<option value="분납" <?php if (strpos($write['wr_19'], '분납') !== false ) echo " seleted";?>>분납</option>
<option value="완납" <?php if (strpos($write['wr_19'], '완납') !== false ) echo " seleted";?>>완납</option>
<option value="환불" <?php if (strpos($write['wr_19'], '환불') !== false ) echo " seleted";?>>환불</option>
<option value="취소" <?php if (strpos($write['wr_19'], '취소') !== false ) echo " seleted";?>>취소</option>
</select>
</td>
으로 바꾸시면 될듯 합니다.
!-->생각보다 간단하게 처리하실수 있습니다.
입력받은 값이 결론적으로 wr_19[<?=$i?>] 즉 조금 출력쪽으로 풀이하자면,.$i값이 1인경우.
wr_191 <-- 요렇게 되는 것이겠네요?
그럼 value값을 불러올때도.. $write['wr_191'] <-- 요렇게 불러와야 맞게 되겠죠?
그래서 뒤에다가 .$i만 추가적으로 넣어주시면 될 꺼 같습니다. 아래 소스를 참고 해주시면될꺼 같습니다
<td>
<select id="wr_19[<?=$i?>]" name="wr_19[<?=$i?>]" required>
<option value="">---결제상태---</option>
<option value="미납" <?php echo ($write['wr_19'.$] == '미납') ? " selected" : "";?>>미납</option>
<option value="분납" <?php echo ($write['wr_19'.$] == '분납') ? " selected" : "";?>>분납</option>
<option value="완납" <?php echo ($write['wr_19'.$] == '완납') ? " selected" : "";?>>완납</option>
<option value="환불" <?php echo ($write['wr_19'.$] == '환불') ? " selected" : "";?>>환불</option>
<option value="취소" <?php echo ($write['wr_19'.$] == '취소') ? " selected" : "";?>>취소</option>
</select>
</td>
답변을 작성하시기 전에 로그인 해주세요.