Codeigniter 2 - 插入表格会产生重复

时间:2015-05-18 15:54:45

标签: javascript php jquery mysql codeigniter

所以我创建了一个简单的计数表,其中包含三列'id','type','value'。当有人点击按钮时,它会在此表中创建一个新行。

调用我的操作的JavaScript:

        $('#myModal .ux-options .btn').on('click', function(){
            var value = $(this).data('value'); 
            // Update the session variable via ajax
            $.ajax({
                type: 'POST',
                dataType: 'json',
                url: 'applications/tallyAnswer',
                cache: false,
                data: {selection: value}
            });

            $('#myModal').modal('hide');
        });

控制器动作:

    function tallyAnswer() {
        $selection = $this->input->post('selection');
        if ($selection) {
            $this->tally->updateTally(array(
               'type' => 'ux-select',
               'value' => $selection
            ));
            $this->session->set_userdata(array(
                'answeredQuestion' => 'true'
            ));
            $response = array(
                'status' => 'success',
                'selection' => $selection
            );
        } else {
            $response = array(
                'status' => 'fail',
                'data' => array(
                    'selection' => 'Must choose a selection'
                )
            );
        }
        $this->output->set_content_type('application/json');
        $this->output->set_output(json_encode($response));
    }

模型方法:

public function updateTally($tally) {
    $this->db->insert('tallies', $tally);
}

所以一个人点击一个按钮,它会在表格中插入一个新行。简单。然而,发生的是该人点击该按钮并插入两个相同的行。我已经检查过,只进行了一次ajax调用。我不确定为什么会这样。我被迫使用旧的codeigniter代码,所以我认为这可能是使用2.2的问题。

1 个答案:

答案 0 :(得分:1)

所以看起来这实际上是codeigniter 2的一个老问题:https://github.com/bcit-ci/CodeIgniter/issues/2473

在旧版本中,如果您尝试插入带有“select”一词的数据,那么您将获得多个插入。我将“类型”更改为“ux-choice”,而不是修复了我的问题。希望这有助于将来有这个问题的任何人!!