제목 | 폼검증 필드배열 사용시 문제 질문입니다. | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 꽈찌쭈 | 작성시각 | 2016/09/29 14:37:21 |
|
|||
참고글 http://codeigniter-kr.org/bbs/view/source?idx=7432&page=4&view_category=&lists_style= http://codeigniter-kr.org/user_guide_2.1.0/libraries/form_validation.html#arraysasfields
## 컨트롤러 ## <?php class Welcome extends Controller { function Welcome() { parent::Controller(); } function index() { $this->load->helper(array('form', 'url')); $this->load->library('form_validation'); $this->form_validation->set_rules('phone[]', '휴대전화', 'required'); if ($this->form_validation->run() == FALSE) { $this->load->view('welcome_message'); } else { $this->load->view('welcome_success'); } } } ## 뷰 ## <?php $phone= set_value ( 'phone[]' ); ?> <select name="phone[]" value="<?=($phone)?$phone[0]:'010 '?>"> <option value="010">010</option> <option value="011">011</option> </select> <input name = "phone[]" type = "text" value = "<?=($phone)?$phone[1]:' '?>" /> <input name = "phone[]" type = "text" value = "<?=($phone)?$phone[2]:' '?>" /> <?php echo form_error('phone[]'); ?>
위의 뷰와 같이 전화번호를 select와 input:text 를 섞어서 사용하려고 합니다. 폼검증 rules에 따라 체크를 하고 휴대전화를 입력하세요 라는 하나의 에러를 표시 후 입력된 값을 노출시켜주는게 목적입니다. 참고글을 참고하여 개발했습니다만 $_POST값으로는 $phone[] 배열이 잘 출력이 되는데 set_value('phone[]')의 값에는 첫번째인 select 값만 담겨있습니다. 예) 값이 010이라고 하면 array('0' => "0", '1' => "1", '2' => "0"); 전화번호의 첫번째 부분을 select가 아닌 input:text로 변경하여도 같은 문제가 발생하네요 어떻게 해결을 해야될까요?
## 추가내용 ## value="<?=($phone)?$phone[0]:'010 '?>" 라고 넣은 부분은 스크립트단에서 처리 중입니다. |
|||
다음글 | 데이터 등록시 긴 로딩 후 이런 에러가 발생하네요 (2) | ||
이전글 | 페이지네이션 옵션 설정 중 base_url 설정부분에서... (2) | ||
변종원(웅파)
/
2016/10/04 00:30:58 /
추천
0
|
꽈찌쭈
/
2016/10/04 09:22:51 /
추천
0
@웅파 네 보통은 나눠서 사용하고 있습니다만 set_rules를 한꺼번에 처리하고 싶었습니다. |
phone[] 를 잘못 사용하고 있습니다. 같은 성질의 연속된 번호를 대상으로 사용하시는 것이 좋고
전화번호 같은 경우는 그냥 phone1, phone2 정도로 사용하는게 좋습니다.