| 제목 | 폼검증 필드배열 사용시 문제 질문입니다. | ||
|---|---|---|---|
| 카테고리 | 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 정도로 사용하는게 좋습니다.