CI 묻고 답하기

제목 checkbox 값 배열로 받아온것 받는 방법.
글쓴이 치혼혈귀 작성시각 2013/04/16 10:07:10
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 29585   RSS
일반 php문법이라면

<input type='checkbox' name='favSports[]' value='1'>축구
<input type='checkbox' name='favSports[]' value='2'>농구
<input type='checkbox' name='favSports[]' value='3'>야구
<input type='checkbox' name='favSports[]' value='4'>족구

이렇게 name 값뒤에 [] 이녀석을 붙여주면 배열로 넘어간다.

------------------------------------------------------
받는 페이지에선

for($i=0 ; $i<sizeof($_POST[favSports]) ; $i++){
echo('$_POST[favSports][$i]');
}

로 가져오면되는데

codeigniter  에서는

$this->input->post('favSports');
이런식으로 값을 가져오는데 배열로 어떻게 가져올 방법 없을까요????

$this->input->post('favSports')[$i]; 이런식으론 못가져오더라구요

고수분들의 답변 바랍니다.

 다음글 tank_auth 세션 생성 질문 드립니다. (11)
 이전글 datamapper dmz 연동 관련 질문입니다. (8)

댓글

변종원(웅파) / 2013/04/16 10:11:50 / 추천 0
$arr = $this->input->post('favSports');

어렵게 생각하면 어렵고 쉽게 생각하면 쉽습니다. 기존 방식에서도 저렇게 사용했습니다.
잘 생각해보세요. ci가 php와 완전 다른 것이 아닙니다. 
인스카 / 2013/04/16 10:17:36 / 추천 0
덧붙이면... 아마 $this->input->post('favSports')[$i];  이런식의 접근이 C#과 같은 다른 언어에서는 가능할겁니다. 저도 습관적으로 시도했다가 안 된 것 같네요.. PHP 언어의 문제라고 보는 시각도 있는 것 같고.. 
그냥 참고만 하세요^^
치혼혈귀 / 2013/04/16 10:25:39 / 추천 0

제가꼼꼼히 찾아보질 못했네요

해결방법 찾았습니다. 어떤분이 다른글에서 댓글남겨주신게 있네요
결론은 implode함수를 사용하는 것입니다.

## 컨트롤러 ##
$bsn_var = implode(",",$this->input->post('chkId'));
이런식으로 받으면 1,2,3,4 이런식으로 출력이 됩니다.

아래는 그냥 체크박스를 배열로 받은거 보여주는거구요

1.<form name="form1" acti>"exe" method="post">

2.<input type="checkbox" name="chkId[]" id="chkId" value="1" />
3.<input type="checkbox" name="chkId[]" id="chkId" value="2" />
4.<input type="checkbox" name="chkId[]" id="chkId" value="3" />
5.<input type="checkbox" name="chkId[]" id="chkId" value="4" />
6.<input type="submit" value="확인" />
7.</form>



 

소울펨 / 2013/04/17 11:22:53 / 추천 0
 치혼님 왜 implode 를 한건가요? 의미가 없어보여서요 ;;; 이건 태클이 아니라 궁굼해서용
소울펨 / 2013/04/17 11:25:39 / 추천 0
 implode 해서 배열을 다른 페이지로 보낼려고 하는걸까요?

질문하공 약간 차이가 있는 해결 방식이라 ....서요
치혼혈귀 / 2013/04/18 17:06:35 / 추천 0
 아 제가 깊게 알지 못하고 덧글 남겼었네요

그냥 

sealize() 로 보낸 배열을

$변수 = $this->input->post('받아오는변수명');

으로 받으면 같은 이름은 배열로 받아지네요... 

디버깅하면서 마지막꺼만 나오길래 마지막거만 받아오는 줄 알고 제가 실수를 했습니다.

그리고 소울팸님에 대한 답변은 

제가 모델에 쿼리를 작성하면서 배열을 문장형태로 ex) and a = 'xxxx' and a = 'yyyy' 이런 형태로 저장을 한 후에

넘겨서 좀 더 쉽게 사용하기 위해 사용한 것이었습니다. 

더 궁금하신점 있으시면 덧글남겨주세요