CodeIgniter检查复选框的值

时间:2014-06-23 13:50:44

标签: php jquery codeigniter ion-auth

我在检查CodeIgniter中复选框的值时遇到问题。我正在尝试实现此处找到的解决方案:Codeigniter checking checkbox value。无论是否选中复选框,以下代码永远不会评估为true。如果我添加值=" 1"对于输入,它总是评估为真。

我的观点:

....
<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);
    }
}

感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:0)

在您的AJAX中,您使用的是$('#Tuesday').val(),它会在您的HTML中查找value属性。由于value属性为空,因此可能是空的。

解决方案是使用$('#Tuesday').is(':checked'),它将返回一个布尔值。

在PHP中只使用if ($checked == TRUE)

答案 1 :(得分:0)

看起来你只检查价值,我实际上会检查是否使用jquery进行检查并发送该值。所以不要这样:

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

我会做这样的事情:

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