PHP-使用外键保存数据(codeigniter)

时间:2018-11-02 01:34:08

标签: php codeigniter

我的数据库中有两个表usersonlineformonlineform有一个名为userid的字段,它是usersid的外键。当我将数据保存到onlineform表时,我正在尝试将登录的用户ID保存到userid字段。但是,它仅返回了此Message: Undefined index: userid。令人困惑的是,其他数据可以保存,只有用户ID不能保存到userid表的onlineform字段中。我正在使用ajax保存数据

我的模型, form_model.php

public function save($form_data) 
{
    for ($i=0; $i < count($form_data); $i++) { 
        $data[] = array(
            'id'=>$form_data[$i]['userid'],
            'date'=>$form_data[$i]['date'],
            'day'=>$form_data[$i]['day'],
            'in1'=>$form_data[$i]['in1'],
            'out1'=>$form_data[$i]['out1'],
            'in2'=>$form_data[$i]['in2'],
            'out2'=>$form_data[$i]['out2'],
        );
    }

    try {
        for($i = 0; $i < count($form_data); $i++) {
            $this->db->insert('onlineform',$data[$i]);
        }
        return 'success';
    } 

    catch (Exception $e) {
        return 'failed';
    }

}

控制器, form.php

public function save()
{
    $form_data = $this->input->post('form_table');

    $this->load->model('form_model');
    $status = $this->form_model->save($form_data);

    $this->output->set_content_type('application/json');
    echo json_encode(array('status' => 'status'));
}

和我的观点, report.php

$('#savedb').click(function(){

        var form_table = [];
        $('#form_table tbody tr').each(function(row, tr) {

            if ($(tr).find('td:eq(0)').text() == "") {
            }

            else {
                var sub = {
                    'day' : $(tr).find('td:eq(0)').text(),
                    'date' : $(tr).find('td:eq(1)').text(),
                    'in1' : $(tr).find('td:eq(2)').text(),
                    'out1' : $(tr).find('td:eq(3)').text(),
                    'in2' : $(tr).find('td:eq(4)').text(),
                    'out2' : $(tr).find('td:eq(5)').text(),
                    'id' : $(tr).find('td:eq(6)').text()
                };
                form_table.push(sub);
            }
        });

        var data = {
            'form_table' :form_table
        };

        $.ajax({
            data : data,
            type : 'POST',
            url : '<?php echo base_url('index.php/Form/save'); ?>',
            crossOrigin : false,
            dataType : 'json',
            success : function(result) {
                if(result.status == "success"){
                }

                else {
                }
            }
        })
    });

1 个答案:

答案 0 :(得分:0)

$form_data[$i]['userid']应该是$form_data[$i]['id']

定义如下:

'id' : $(tr).find('td:eq(6)').text()

或将后者更改为:'userid' : $(tr).find('td:eq(6)').text()