2014-06-23 2 views
0

CodeIgniter에서 체크 박스 값을 확인하는 데 문제가 있습니다. 여기에있는 해결책을 구현하려고합니다 : Codeigniter checking checkbox value. 체크 된 체크 박스에 관계없이 다음 코드는 절대로 true로 평가되지 않습니다. 입력에 value = "1"을 추가하면 항상 true가 평가됩니다.CodeIgniter 체크 박스 값 확인

내보기 :

.... 
<input name="Tuesday" id="Tuesday" type="checkbox" /> 
.... 

<script type="text/javascript"> 
.on('finished', function(e) { 
    var form_data = { 
     Tuesday: $('#Tuesday').val(), 
     ajax: '1' 
    }; 

    $.ajax({ 
     url: "<?php echo site_url('opportunity/create_opportunity'); ?>", 
     type: 'POST', 
     data: form_data, 
     dataType: 'json', 
     cache: false 
    }); 
}) 
</script> 

내 컨트롤러 : 당신이 제공 할 수있는 어떤 도움

function create_opportunity() { 

    if($this->input->post('ajax')) { 
     $checked = $this->input->post('Tuesday'); 

     if((int) $checked == 1) { 
      $Tuesday = array(
       'Week_Day_Id' => 2, 
       'Opportunity_Id' => 18, 
       'Preferred' => $checked 
      ); 
     } 

     $this->ion_auth_model->create_opportunity($Opportunity, $Tuesday); 
    } 
} 

감사합니다.

+0

하세요'위해서 var_dump (체크 $)를'와 출력을 보여

.on('finished', function(e) { var form_data = { Tuesday: $('#Tuesday').val(), ajax: '1' }; 

나는 같은 것을 할 것입니다. – nightgaunt

답변

0

AJAX에서는 $('#Tuesday').val()을 사용하고 있으며 사용자의 HTML에서 value 속성을 검색합니다. value 속성은 비어 있으 G로 비어있는 상태로 전송 중일 수 있습니다.

해결책은 부울을 반환하는 $('#Tuesday').is(':checked')을 사용하는 것입니다. PHP에서

그냥 그것은 당신 만 값을 확인 같습니다 if ($checked == TRUE)

+0

빠른 응답을 보내 주셔서 감사합니다. 컨트롤러에서 AJAX와 if 문을 업데이트 한 후에는 항상 true로 평가됩니다. –

+0

'var_dump ($ checked)'를 추가하고 정확한 결과를 보여줄 수 있습니까? 우리가 사소한 것을 놓친 것처럼 보입니다. – nightgaunt

+0

어떤 이유로 var_dump()가 내 로그 파일에서 null을 반환합니다. 그러나, 나는 이것을'if ($ checked == 'true')'로 작동시킬 수있다. 내 변수 유형이 문자열 인 것 같습니다? –

0

사용, 나는 그것이 jQuery를 사용하여 확인하거나 있지 않은 경우 실제로 확인하고 대신 그 값을 보낼 것입니다. 그래서 대신의 :

.on('finished', function(e) { 
var form_data = { 
    Tuesday: $('#Tuesday').prop('checked') // this should send a true or false value 
    ajax: '1' 
}; 
+0

'$ ('# Tuesday')를 사용하여 위에서 설명한 것과 같은 결과를 얻습니다. prop ('checked')' –