PHP - сохранение данных с внешним ключом (codeigniter) - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть две таблицы, users и onlineform в моей базе данных. onlineform имеет поле с именем userid, которое является внешним ключом для users таблицы id. Когда я сохраняю данные в таблицу onlineform, я пытаюсь сохранить зарегистрированный идентификатор пользователя в поле userid. Но он только вернул это Message: Undefined index: userid. Смущает то, что другие данные могут быть сохранены, только идентификатор пользователя не может быть сохранен в поле 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 голосов
/ 02 ноября 2018

$form_data[$i]['userid'] должно быть $form_data[$i]['id']

как здесь определено:

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

ИЛИ измените позже на: 'userid' : $(tr).find('td:eq(6)').text()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...