CI 묻고 답하기

제목 히든으로 보낸 값을 서버로 전송하는 방법좀
글쓴이 시아라 작성시각 2013/02/21 02:38:51
댓글 : 8 추천 : 0 스크랩 : 0 조회수 : 14821   RSS

뷰에서 form 을 submit 할때

form_hidden($userid) 으로 넘기려고 합니다.

$userid 는 유저 고유 번호로 가입시 AI 로 올라오는 값으로 저만 보는 값인데

이걸 히든으로 옴기려고 배열에 넣어서 섭밋버튼(컨에서 $this->db->update로 전달) 누르니

히든으로 받은 값들이 모두 '0' 으로 바껴버렸습니다.


히든으로 받은 값(수정불가여야 하는값)을 전달해야 할때는 어떻게 해야하나요.

 다음글 lighttpd 리눅스 idex,php 지우기 (2)
 이전글 라우팅설정후, 라우팅전 경로를 못가게 하고싶습니다. (2)

댓글

criuce / 2013/02/21 09:03:11 / 추천 0
히든이나 text나 사용방법에 있어선 별 차이가 없는데요.

관련 코드를 올려주시는게 더 확인하기 쉬울듯 합니다.^^
니삼 / 2013/02/21 09:04:35 / 추천 0
 form_hidden('userid', $userid)
== 
<input type="hidden" name="userid" value="$userid" />
시아라 / 2013/02/21 12:51:44 / 추천 0
기능은 커뮤니티에 글을 올렸을때 관리자가 한번 보고 승인을 해야(업데이트) 글이 올라오는 방식입니다.
외국사이트에 moderator 의 기능입니다.

일단 히든부분만 보면

관리자페이지

        <tr>
            <td><?php echo form_label('userid', $userid['id']); ?></td>
            <td><?php echo form_hidden($userid); ?></td>
        </tr>
여기다가 $userid 의 value 는 $result->userid 값을 받습니다.(손님이 올린글의 손님userid 번호를 받는거죠)


$Data['userid']      = $this->input->post('userid'); // 이부분이 문제인가요?

$this->db->update('uploads', $Data, array('id' =>$this->input->post('uploads_id')));

이렇게 되있습니다. 맨 밑줄은 업로드테이블에 $Data array로 받는 값을, 글id 에 맞게 넣어주는것입니다.(글아이디도 지금 걍 form_input으로 보내는중입니다)


여기서 만약에 form_hidden 부분을 form_input으로 바꾸면 값을 받아서 정상적인 값으로 전달이 됩니다만 hidden 으로 만들면 안되네요. 예를 들어 input으로 해놓으면 글쓴이의 유저번호가 37이라고 할때 인풋필드에 37이 올라오고 관리자가 수정을 할수있습니다. 하지만 form_hidden으로 해놓으면 37이라고 받는줄은 몰라도 일단 submit 버튼을 누르면 서버에 0으로 업데이트 됩니다. 모가 문제죠?
니삼 / 2013/02/21 12:56:53 / 추천 0
 개발자 도구 같은걸로 input 태그가 어떻게 생성되는지 한번 체크해보세욥

니삼 / 2013/02/21 12:57:13 / 추천 0
 name이라던가 틀린 부분이 있을지도 
시아라 / 2013/02/21 14:35:39 / 추천 0

히든값으로 해놓고 개발자도구 훑어보니 value는 정상적으로 뜨네요.
네임은 맞습니다. form_hidden을 form_input 으로 해놓으면 정상적인 값이 뜨니까요.

아 근데 submit 으로 넘기면 왜안는건지

시아라 / 2013/02/21 14:44:26 / 추천 0
그런데 컨에서
$Data['userid'] = $this->input->post('userid');

이렇게 input->post 로 히든값을 받는건 맞나요?
시아라 / 2013/02/21 15:13:18 / 추천 0
아 히든에 들어가는 값의 연관배열이 인풋폼하고 달랏군요.

form_hidden($userid) 에서 $userid 어레이를


$userid = array(
'name' => 'userid',
'id' => 'userid',
'value'=>$result->userid
);
에서

$userid = array(
    'userid' => $result->userid,
);

로 바꾸니 되네요ㅡㅡ