如何通过忽略数据库中列的默认值来发布表单数据

时间:2019-07-27 09:45:07

标签: mysql codeigniter

我想创建注册表单,但是我需要id_role作为此表单的静态值,但由于这个原因,我无法使用此表单插入数据。我可以从phpmyadmin中手动设置默认值,但不能从codeigniter中完成

我试图再次使其下拉并手动选择id_role,但它仍在工作,但我想让每个要使用此表单注册的用户都具有相同的id_role值

这是角色

driver.find_element_by_xpath("//button[@class='theclassabc']").click()

这是 orang_tua 表。如您所见,它的默认值为3

<button type="submit" width="full" class="theclassabc">text of button</button>

这是注册表格的视图,我想使其自动选择3,或者是否可以删除此角色下拉列表,这样每个用户都无需再选择

CREATE TABLE `role` (
    `id` INT(11) NOT NULL,
    `role` VARCHAR(50) NOT NULL,
    PRIMARY KEY (`id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
;

这是注册表格的控制者

CREATE TABLE `orang_tua` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `n_ibu` VARCHAR(100) NOT NULL,
    `n_ayah` VARCHAR(100) NOT NULL,
    `email` VARCHAR(100) NOT NULL,
    `no_tlp` VARCHAR(20) NOT NULL,
    `alamat` VARCHAR(100) NOT NULL,
    `id_siswa` INT(11) NOT NULL,
    `id_role` INT(1) NOT NULL DEFAULT 3,
    `pass` VARCHAR(255) NOT NULL,
    PRIMARY KEY (`id`),
    UNIQUE INDEX `email_ot` (`email`),
    INDEX `FK_orang_tua_siswa` (`id_siswa`),
    INDEX `FK_orang_tua_role` (`id_role`),
    CONSTRAINT `FK_orang_tua_role` FOREIGN KEY (`id_role`) REFERENCES `role` (`id`) ON UPDATE CASCADE ON DELETE CASCADE,
    CONSTRAINT `FK_orang_tua_siswa` FOREIGN KEY (`id_siswa`) REFERENCES `siswa` (`id`) ON UPDATE CASCADE ON DELETE CASCADE
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=12
;

这是注册表格的模型


    <div class="input-group">
        <span class="input-group-addon">
            <i class="material-icons">people</i>
        </span>
        <div class="form-line">
            <select name="id_role" class="form-control ms">
                <option value="">-Login Sebagai-</option>
                <?php
                foreach ($all_role as $role) {
                    $selected = ($role['id'] == $this->input->post('id_role')) ? ' selected="selected"' : "";

                    echo '<option value="' . $role['id'] . '" ' . $selected . '>' . $role['role'] . '</option>';
                }
                ?>
            </select>
        </div>
    </div>

我想为此表单的id_role列自动设置值为3,因此对于要注册的新用户,该角色在3上是一致的

1 个答案:

答案 0 :(得分:0)

Remove select box with name "id_role".

Update your controller function as below.

function daftarortu()
    {
        $this->load->library('form_validation');

        $this->form_validation->set_rules('pass', 'Pass', 'required|trim');
        $this->form_validation->set_rules('pass1', 'Confirm Pass', 'required|trim|matches[pass]');
        $this->form_validation->set_rules('email', 'Email', 'required|valid_email|trim');
        $this->form_validation->set_rules('no_tlp', 'No Tlp', 'required|trim');
        $this->form_validation->set_rules('alamat', 'Alamat', 'required|trim');
        $this->form_validation->set_rules('n_ayah', 'N Ayah', 'required|trim');
        $this->form_validation->set_rules('n_ibu', 'N Ibu', 'required|trim');
        $this->form_validation->set_rules('id_role', 'Id Role', 'required');
        $this->form_validation->set_rules('id_siswa', 'Id Siswa', 'required');

        if ($this->form_validation->run()) {
            $params = array(
                'id_siswa' => $this->input->post('id_siswa'),
                'id_role' => 3,
                'pass' => md5($this->input->post('pass')),
                'n_ibu' => $this->input->post('n_ibu'),
                'n_ayah' => $this->input->post('n_ayah'),
                'email' => $this->input->post('email'),
                'no_tlp' => $this->input->post('no_tlp'),
                'alamat' => $this->input->post('alamat'),
            );

            $orang_tua_id = $this->Register_model->reg_orang_tua($params);
            redirect('login');
        } else {
            $this->load->model('Siswa_model');
            $data['all_siswa'] = $this->Siswa_model->get_all_siswa();


            $this->load->model('Role_model');
            $data['all_role'] = $this->Role_model->get_all_role();

            $data['_regis'] = 'register/daftarortu';
            $this->load->view('layouts/reg', $data);
        }
    }