CI 묻고 답하기

제목 체크박스 처리 질문.
글쓴이 수야디벨 작성시각 2012/11/21 15:35:37
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 14780   RSS



안녕하세요 ~!

view 에 아래와 같이 폼을 처리하는데요~!

<?php echo form_opent('werail/blog_controller/do_upload');?>  
 <input type="checkbox" name="blog"/>blog
 </form>


그러면 controller의 do_upload 함수가 실행이 되잖아요~?

controller.

*do_upload

function do_upload()
{
   $checked = $_POST['blog'];

  echo $checked ;
}

그래서 위와같이 처리해서 출력하면,

체크되어 있는 상태에서는 'on' 이라는 메세지를 뿌려주는데,
체크를 하지 않고 폼 전송을 하면, 오류가 납니다.


저는 컨트롤에서 체크가 되있으면 A루틴 ,안되어 있으면 B루틴으로 보내려고 하는데,
아예 체크를 안하면 오류를 뿜어서 어떻게 해야할지 난감하네요~ㅠ


제가 어디서 실수하고 있는걸까요?

 다음글 view를 변수로 받았는데 그냥 페이지에 찍히네요 (2)
 이전글 hook 로 지정된 클래스에서 모델 사용 (4)

댓글

criuce / 2012/11/21 15:37:57 / 추천 0
 form에서 checkbox가 체크되어 있지 않으면 아예 전송을 안합니다.
그냥

if(!$checked) { $checked = 'off' } 

이런식으로 해주시면 될듯!
수야디벨 / 2012/11/21 15:44:09 / 추천 0

criuce//

일단 무조건 전송을 하긴 해야 합니다 ㅠ

일단 받는쪽에서

$chekced=$_POST['sns'] ;
if(!checked){
$checked = "off";
}

라고 해보니까.

애초에 $chekced=$_POST['sns'] ; 이 라인에서부터 오류가나네요~


이게 게시판 글 올리는거라서요, 체크가 되어 있으면 다른 곳에도 동시에 글이 올라가고,
안되어 있으면 그 게시판만 올라가는거라서,

아예전송을 안해버리면 곤란하거든요~ㅜ

헛발이 / 2012/11/21 15:54:12 / 추천 0
일단 $_POST 로 직접 받는건 예전부터 나온 말이지만.. 보안상에 이유로 좋은 방법은 아니구요..

$this->input->post(); 등을 이용하거나 폼검증을 이용하여 사용하시기 바랍니다..

일단은 값이 잘 넘어 오는지 확인 하는 차원에서...
<pre>
<?php echo print_r($_POST);?>
<pre>
이렇게 해서 무엇무엇이 넘어 왔는지 확인 하시고...
변수명이 틀렸거나... 다시 한번 살펴 보시기 바랍니다..


수야디벨 / 2012/11/21 16:09:43 / 추천 0
//헛발이

체크가 되어있으면 [blog]=>on 이라고 넘어오는데,

체크가 안되어 있으면 아예 안넘어오네요.


컨트롤에서 루틴 결정을 하려면 일단

$this->input->post('sns'); 로 받아와야 하는데,

체크를 안하면 sns 자체가 넘어오지 않으니 당연히 오류를 뿜는군요.

그렇다면, 위 처럼 처리하는거 자체가 불가능한걸까요?
헛발이 / 2012/11/21 16:11:28 / 추천 0
그러면
if ( isset($_POST['sns']) )

//이렇게 말이죠..
$sns = ( isset($_POST['sns']) ) ? TRUE : FALSE;
으로 판단 할수 밖엔 없을거 같은데요...
수야디벨 / 2012/11/21 16:14:14 / 추천 0
//헛발이

헛, 그렇군요 ㅎㅎ 감사합니다!

해결되었네요~^^

한대승(불의회상) / 2012/11/21 16:20:07 / 추천 0
$this->input->post('sns');
쓰면 고민하지 않아도 됩니다.