CI 묻고 답하기

제목 입력값 다시 표시하고 싶은데...
글쓴이 codeignite 작성시각 2011/11/09 16:41:22
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 18835   RSS
여러 단계에 걸쳐서 입력하는 폼이 있는데.. 

입력화면1 --> 입력화면2 --> 입력확인 --> 등록

만약 입력화면2에서 back버튼을 눌러 입력화면 1로 왔을 때 
입력했던 값을 다시 표시하고 싶은데..

어떻게 처리해야하나요?
 다음글 오라클연결... (1)
 이전글 이미지 업로드 (4)

댓글

변종원(웅파) / 2011/11/09 16:52:48 / 추천 0
서버 설정상 또는 브라우저상의 문제로 폼 액션에서 뒤로 가기 버튼을 클릭했을때
데이터가 나올 수 있으나 바로 보이게 되는 것은 문제가 있습니다.

이전 폼에서 전송된 값을 hidden 필드에 넣어놨다가 back버튼을 누르면 폼전송으로 넘기시면 되기는 합니다만
통상적으로 웹에서 그런 액션을 쓰지 않습니다.

한 화면에서 아코디언 형태로 쓰거나 하지 폼액션을 다시 폼으로 넘겨서 받는 형태 또는 뒤로가기 버튼으로
데이터가 남아있는 형태로 쓰는 것은 비추입니다.

기획자를 설득(또는 저런 액션 자체를 요구한 기획자라면.....)해서 형식을 바꾸는 것이 좋습니다.

쇼핑몰 보시면 아코디언 형태로 1단계 입력후엔 다음 아코디언이 열려서 처리, 그 후에 다른 아코디언에서 처리.
화면상으로 보면 여러 단계지만 실제로는 한 화면의 한 단계입니다.
codeignite / 2011/11/09 17:44:30 / 추천 0
 웅파님 답변 감사합니다.

아코디언 형태의 조언 감사합니다. 검토해보겠습니다.

하지만 앞으로 쓰일수도 있을 것이란 생각에 추가 질문드립니다.

컨트롤러에서 다음과 같이 쓰고
$this->form_validation->set_rules('user_id', 'ID', 'required|valid_email');

뷰에서 아래와 같이 하면
<?=form_input('user_name', set_value('user_name'))?>

submit이 일어나면 Post로 입력값이 넘어오고
입력값이 맞지 않으면 입력폼에 다시 뿌려지는 형태인것 같은데... 

프로그램내에서 입력값을 조작해서 다른값으로 뿌려준다거나..
세션의 값으로 강제로 뿌려주고 싶을 때는 
위의 방법처럼 set_value로 쓸 수 없는 것인가요?


codeignite / 2011/11/09 18:38:51 / 추천 0
아래와 같이 하면 세션값을 이용할 수 있네요...

컨트롤러 
$data['user_id'] = $this->session->userdata('user_id');
$this->load->view('user/login', $data);


<?=form_input('user_id', $user_id)?>


그리고 혹시 Post값을 조작할 수 있을려나요??

$this->input->post('user_id') = ’test’; <--- 이렇게 하면 에러가 나더라고요^^;;
변종원(웅파) / 2011/11/09 20:46:46 / 추천 0
조작하는거는 그냥 변수에 넣어주고 다시 넘겨주면 그만입니다. 
포스트 전송한거 다시 반환해주는거면 어차피 $data 변수에 넣어서 뷰로 전달할건데
굳이 포스트배열에 넣을 필요가 없죠. 
그냥 넘겨주면 되죠. ㅋㅋ

$data['user_id'] = 'aaa'; //$this->input->post('user_d') 값이 뭐던지 간에 조작은 
개발자가 하는거라 그냥 원하는 값 넣어서 넘기면 그만이죠.
$this->load->view('user/login', $data);
codeignite / 2011/11/09 21:17:34 / 추천 0
그렇군요^^ ;;

너무 어렵게 생각했네요~~
감사합니다...^^