만들면서 배우는 CodeIgniter Q&A

제목 179페이지 179p
글쓴이 작업공간 작성시각 2014/06/24 17:22:46
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 10572   RSS
셀렉트박스 값,
체크박스 값,
라디오 값...

복원이 안되는데요....


http://ehdwls5tls.cafe24.com/ci/index.php/test/forms


이유가 뭘까요..?


<div class="control-group">
   <label class="control-label" for="input06">셀렉트값 복원</label>
       <div class="controls">
           <select name="myselect" id="input06">
              <option value="one" <?php echo set_select('myselect', 'one', TRUE); ?>>One</option>
              <option value="two" <?php echo set_select('myselect', 'two'); ?>>Two</option>
              <option value="three" <?php echo set_select('myselect', 'three'); ?>>Three</option>
            </select>
            <p class="help-block">셀렉트하세요</p>
        </div>
    </div>
    <div class="control-group">
        <label class="control-label" for="input07">체크박스</label>
        <div class="controls">
             1번 <input type="checkbox" name="mycheck[]" id="input07" value="1" <?php echo set_checkbox('mycheck[]', '1', TRUE); ?>>
             2번 <input type="checkbox" name="mycheck[]" value="2" <?php echo set_checkbox('mycheck[]', '2'); ?>>
            <p class="help-block">체크박스를 선택하세요</p>
         </div>
     </div>
    <div class="control-group">
          <label class="control-label" for="input08">라디오</label>
          <div class="controls">
         1번 <input type="radio" name="myradio" id="input08" value="1" <?php echo set_radio('myradio', '1', TRUE); ?>>
          2번 <input type="radio" name="myradio" value="2" <?php echo set_radio('myradio', '2'); ?>>
             <p class="help-block">라디오버튼을 선택하세요</p>
             </div>
      </div>
 다음글 궁금한점입니다.. (3)
 이전글 126페이지 짚고 넘어갈게 있어서요. (2)

댓글

변종원(웅파) / 2014/06/24 17:49:16 / 추천 0
책 설명에도 있지만 세번째 파라미터에 true를 주게되면 선택된 값이 됩니다.
죄송하지만 책에 완전한 소스가 아닙니다. 최대한 ci의 요소들을 사용하여 작성을 했지만 
폼검증이 이렇게 사용된다의 예제정도를 담는 수준입니다. 

실무에서 사용하려면 다음과 같이 사용하셔야 합니다.
 
<?php
 foreach ($type_arr as $key=>$val)
 {
 ?>
     <option value="<?php echo $val?>"  <?php echo (set_value('type') == $val)? set_select('type', $val, TRUE) : set_select('type', $val); ?>><?php echo $key?></option>
 <?php
 }
 ?>

위 소스처럼 option의 내용을 배열로 하여 foreach 문으로 <option> 구문을 작성합니다. 
현재 배열 값과 폼검증후 복원된 값이 같을 경우 세번째 파라미터에 true를 주고 그렇지 않은 경우는 세번째 파라미터를 생략합니다.
위 소스를 체크박스, 라디오에도 응용하시면 됩니다.
작업공간 / 2014/06/25 09:43:07 / 추천 0
이해하기를 http://www.codeigniter-kr.org/user_guide_2.1.0/libraries/form_validation.html#repopulatingform

예전에 책사서 공부하기전에도 위 링크에서 공부한적이 있었습니다.
저기도 set_select, 들을 따라해보았는데 set_value 처럼 값이 유지되는 그런것이 되지는 않더라구요.

set_value와 set_select, set_checkbox 등을 같은 맥락으로 생각하게 되서 그런거 같네요..
배워갑니다. 감사합니다~